HP의 ILO

Linux 2015. 5. 14. 16:36

서버가 접속이 안될 경우를 대비해

HP에서는 ILO (Integrated Light Out) 기능을 제공 한다.

 

독립적인 Ethernet포트를 이용해

OS에서 사용하는 것과 다른 IP어드레스와 user/비번을 제공한다.

 

1. ssh 터미널로  초기접속하게되면 아래와 같은 커서가 뜨게 된다.

=====================================

</>hpiLO-> 

 

 

2. 웹브라우저로 https://서버IP  로 접속하면

  웹기반 GUI가 제공된다.

 

  ==> 접속후 보통 Remote Console (IRC)로 파워 on/off,  OS설치, keyboard 입력 등의 작업을 한다.
       IRC를 뛰우면 OS 로그인 prompt가 기본적으로 뜨고.. 상단메뉴에  PowerSwitch / Virtual Drives / Keyboard 가 존재한다.

 

 

User_Guide는 여기클릭

 

Posted by yongary
,

Call Transfer에는 다음과 같은 3가지 종류가 있다.

 

1. Blind Transfer

   - 제 3자 상태의 확인 없이 무조건 돌려주기

 

2. UnScreened Transfer

  - 제3자에게 통화를 해보고 신호가 가는지 확인해서 돌려주기

 

3. Screened Transfer

  - 제 3자와 통화를 직접해서 돌려주겠다고 말까지 한 후, 돌려주기.

 

 

<구현 방식>

1. Blind  Transfer

   - IP-PBX가 REFER메시지를 처리하는 방식이 일반적인 것 같고, 

    A단말에서 REFER를 처리하는 방법도 있다.(단말이 REFER지원해야 함)

 

2. (Un)Screened Transfer

   - IP-PBX가 INVITE(with REPLACES)를 보내는 방법도 있고

     IP-PBX에서 ReINVITE만을 사용하는 방식도 있다.

 

 

 

<Invite with REPLACES 예제>

 

         Alice          Alice                             Parking
        phone1         phone2            Bob               Place
        |               |                 |                   |
        |<===============================>|                   |
        |               |                 |                   |
        |        Alice transfers Bob to Parking Place         |
        |               |                 |                   |
        |------------REFER/200----------->|    *1    *2       |
        |<--NOTIFY/200 (trying)-----------|--INVITE/200/ACK-->|
        |<--NOTIFY/200 (success)----------|<=================>|
        |------------BYE/200------------->|                   |
        |               |                 |                   |
        |               |                 |                   |
        |  Alice later retrieves call from another phone      |
        |               |                 |                   |
        |            *3 |-INV w/Replaces->|                   |
        |               |<--200-----------|                   |
        |               |---ACK---------->|----BYE/200------->|
        |               |<===============>|                   |
        |               |                 |                   |


   Message *1: Bob-> Parking Place

   INVITE sip:parkingplace@example.org SIP/2.0
   To: <sip:parkingplace@example.org>
   From: <sip:bob@example.org>;tag=7743
   Call-ID: 425928@bobster.example.org
   CSeq: 1 INVITE
   Contact: <sip:bob@bobster.example.org>
   Referred-By: <sip:alice@phone1.example.org>

   Message *2: Parking Place -> Bob

   SIP/2.0 200 OK
   To: <sip:parkingplace@example.org>;tag=6472
   From: <sip:bob@example.org>;tag=7743
   Call-ID: 425928@bobster.example.org
   CSeq: 1 INVITE
   Contact: <sip:parkplace@monopoly.example.org>

   Message *3: Alice@phone2 -> Bob

   INVITE sip:bob@bobster.example.org
   To: <sip:bob@example.org>
   From: <sip:alice@phone2.example.org>;tag=8983
   Call-ID: 09870@phone2.example.org
   CSeq: 1 INVITE
   Contact: <sip:alice@phone2.example.org>
   Require: replaces
   Replaces: 425928@bobster.example.org;to-tag=7743;from-tag=6472

 

Posted by yongary
,

Strict Route vs Loose Route

IMS 2015. 4. 30. 17:20

<SIP 메시지 포맷>

INVITE <sip:Request URI

Via:

Route: 처음에는 UE가 P-CSCF 주소를 넣음.<1차 경유지>  

    나중에는 UE가 Record-Route에서 읽은 걸 여기다 넣어 줌. 

        (요즘 다 Loose Route 방식임)



<Route 방식 비교>

Strict Route: <RFC2543>

  Requset-URI가 항상 next-hop을 지니는 방식으로 매번 Request-URI를 overwrite하게 됨. 

  따라서,  진짜 Request-URI는 마지막 Route에 적어줘야 함.

 

Loose Route:  <RFC3261>

  Request-URI는 항상 그대로 이며, 

  최상 Route로 무조건 전달.  ==> Request-URI가 다음 목적지가 아니라는 점에서 큰 변화였음.



(Strict Route를 Loose Route로 바꾸는건 backword compatibility 유지하기에는 오버헤드가 큼)

  

Posted by yongary
,

<통화 중 HOLD> 

 hold기능이 볼때마다 헤깔려서, 잊지 않기 위해서 정리해 보면


A-B단말이 통화중에

1.A가 invite(sendOnly)를 올리면   MS(미디어서버)가 이를 받아  B로 invite(sendOnly)를 보내고

   2. B는 invite(recvOnley)로 응답.

 3. MS가 A로 recvOnly응답


최종적으로는 A는 MS에다가 말하는 구조가 되고

MS는 B로 음악(hold음)을 틀 수 있는 구조로 된다.




<Bearer open>

BS(Bearer Service) 오픈:  P-CSCF P_CRF 요청하면   P_CRF AccesS GW BS Manager 통해

단말의 BS Manager 통신해서 IP-CANnectivity 연결됨




<Invite의 각종 필드>


-Privacy: id  이면 발신자표시 금지로서 P-Asserted-Identity ( P-CSCF 에서 세팅 ) 상대 단말로 보낼 없다

-일반적으로 Reinvite to태그가 달라야.. 미디어갱신이 됨  (최근 많이 사용되는 아프로텍 단말은 제외)

 

 

Via : Response 정확하게 trace-back되도록 지나간 경로를 그대로 기록. - 히스토리라서 CSCF 다기록.

Record-Route : Request 빠르게 따라가도록 Route경로를 기록.

       CSCF들은 Via Record-Route 같이 add. (I-CSCF Via 기록. Record-Route 제외..
       I-CSCF
서치만 하고 서치가 끝난게 실제 기록된 Route.)

 

Serivce-Route: REGI S-CSCF  S-CSCF 직접 200 OK 적어 .  (UE 기록해 뒀다가 Invite시에 Route 직접 이용한다는데.. 
                   P-CSCF 자기주소를 기록하는 Path 반대 )


Contact: UE 직접 SIP 접근하기 위함.  ( SDP C[커넥션 IP] 차이점은 없나? - 같겠지만 미디어는 주로 C 사용할 .  )

            외에도 callee audio/video카파 ,  I-CSI ,   temp- GRUU ,  IARI(MMTel-ICSI)
           
ICSI (IMS - Communication Service Identification),  IARI (IMS-Application Reference Indentification),  


Accept-Contact: 발신자의 Preference. 



ICSI P-Preferred-Service헤더에 있을 경우,  S-CSCF 이걸 P-Asserted-Service 치환.




I-CSCF LIR(diameter Location Info Request) 통해 HSS 직접 조회.      (HSS 2개이상인 경우에는 SLF 필요)


Posted by yongary
,

lsof

Linux/Linux:sh개발 2015. 4. 22. 22:54

list of Open File.  특정파일을 access하고 있는 프로세서들을 나열한다.


예)

$lsof mylogfile


$lsof /proc

Posted by yongary
,

XML파싱 방법에는 문서전체를 로드해서 하는 DOM방식과, 문서를 순차적으로 읽으면서 하는 SAX(Simple Api 4 Xml)방식이 있다. 참고사이트


JDom등의 별도 라이브러리를 쓰는 경우도 있지만,

내장된 XPath가 워낙 간단해서 입문자는 무조건 이방식으로 하면 될 것으로 보인다.   이 XPath는 기존의 DOM 방식이나 SAX방식이 아닌

XDM(Xml Data Model)방식으로 불리는데, 굳이 Dom/SAX와 비교하자면 Dom방식에  약간 더 가깝다고 볼 수 있을 것 같다.



<사용방식>

//어딘가 Web에 연결해서

      HttpURLConnection con = (HttpURLConnection)apiUrl.openConnection();

 con.setRequestMethod("GET");


//using XPath 로 파싱.

InputSource is = new InputSource( new InputStreamReader(con.getInputStream()));

Document doc = DocumentBuilderFactory.newInstance()

.newDocumentBuilder().parse(is);

XPath xpath = XPathFactory.newInstance().newXPath();

zone = (String)xpath.evaluate("/result/zoneName", doc, XPathConstants.STRING);

String offTime = (String)xpath.evaluate("/result/gmtOffset", doc, XPathConstants.STRING);

time = timeAdd(timeCords[0], offTime);

Posted by yongary
,

1. 몇가지 Regex 샘플.


A."no it's all right lag"  제거 => str.replaceAll ("no (.*)lag", "A")

B. "Availability in 20 days";  20만 발췌 =>  str.replaceAll("\\D+", ""); 




2. json 을 파싱할 때, 필요한  Regex 2개이다.  (\=역슬래쉬)


String normal = json.replaceAll("[{\"}]", ""); //remove {,", }

String[] kvset = normal.split(",\\s*");  //split with ,   and  * means  space exist or not



Regex정리 사이트


표현식

 설명 

 ^

 문자열의 시작

 문자열의 종료

 .

 임의의 한 문자 (문자의 종류 가리지 않음)

 단, \ 는 넣을 수 없음

 *

 앞 문자가 없을 수도 무한정 많을 수도 있음

 앞 문자가 하나 이상

 앞 문자가 없거나 하나있음

 []

 문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를      나타낸다. []내에서 ^가 선행하여 존재하면 not 을 나타낸다.

 {}

 횟수 또는 범위를 나타낸다.

 ()

 소괄호 안의 문자를 하나의 문자로 인식 

 |

 패턴 안에서 or 연산을 수행할 때 사용

 \s

 공백 문자

 \S

 공백 문자가 아닌 나머지 문자

 \w

 알파벳이나 숫자

\W 

 알파벳이나 숫자를 제외한 문자

\d 

 숫자 [0-9]와 동일

\D 

 숫자를 제외한 모든 문자

 정규표현식 역슬래시(\)는 확장 문자
 역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고 역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미

(?i) 

 앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않음


Posted by yongary
,

가변 파라미터를 받아서 사용하는 방법: (vprintf로 출력가능 한데)

=> 약간 변조하고 싶을 때에는 vsprintf를 사용하면 된다... 



#include <stdarg.h>


void logPRINTD(const char* format, ...){ 

    char str[512];

    

va_list args;

    va_start(args, format);

    vsprintf(str, format, args);  //str로 옮기기

    strcat(str,"\n"); /////////////////////  str에 \n 더하기

    va_end(args); 


//str로 하고싶은일 하기. bla bla 

}   


Posted by yongary
,

라우팅 설정.

Linux 2015. 4. 16. 16:29

 

 

리눅스에서 실제 라우팅이 되는지 체크하는 명령어는

$traceroute 123.45.123.45   이다.

 

 

라우팅이 안되어 있다면

 $route add -net 125.159.63.14 netmask 255.255.255.255 gw 14.63.134.254 dev eth4  명령으로 추가가능.

 

삭제시에는

$ route del -net 118.49.2.0 netmask 255.255.255.0 명령어로 사용.

 

라우팅 테이블 확인은

$route 명렁어이다.     추가와 삭제 후에 이 명령어로 확인하면 된다.


(맥북에서는 $netstat -nr 이 비슷하네요)

 

 

=====껐다켜도 되게 하려면 아래 정보 추가=================

/etc/sysconfig/network-scripts/route-eth4

ADDRESS0=14.63.237.0

GATEWAY0=10.217.80.1

NETMASK0=255.255.255.0

Posted by yongary
,

pthread

Linux/Linux:c개발 2015. 4. 14. 11:28

참조: http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Thread/Beginning/PthreadApiReference 



Thread의 상태:

PTHREAD_CREATE_JOINABLE  : 다른 thread끝나고 동작하는 thread. (exit나 join을 호출을 통해서 자원을 반납해야 하는 thread.)

PTHREAD_CREATE_DETACHED : 독립적으로 동작하므로 종료시점 체크필요없고, 종료시 자동자원반납. 



<구조체>


typedef  long pthread_t;

struct pthread_attr {
  void *stackaddr;
  size_t stacksize;
  int detachstate;
  struct sched_param param;
  int inheritsched;
  int contentionscope;
};

typedef struct pthread_attr pthread_attr_t;
#define PTHREAD_CREATE_JOINABLE       0
#define PTHREAD_CREATE_DETACHED       1


<예제 - 심플 detatched thread 생성. >

 pthread_t id;

 pthread_attr_t attributes;  



// initialize thread attributes

    pthread_attr_init(&attributes)

    pthread_attr_setdetachstate( &attributes, PTHREAD_CREATE_DETACHED);


//create a new thread 

   pthread_create( &myId, &attributes, startFunc, args);  //args는 startFunc로 전달. 

   pthread_attr_destroy(&attributes); //자원해제 



Posted by yongary
,