Asterisk pjsip sip message: Difference between revisions
Jump to navigation
Jump to search
(Created page with "== Overview == Asterisk pjsip module's sip message 관련 내용 정리 == INVITE == Category:Asterisk") |
(→INVITE) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
== INVITE == | == INVITE == | ||
Asterisk 에서의 모든 Inbound 채널 및 관련 세션 생성은 INVITE 메시지로부터 시작한다. | |||
=== Caller info === | |||
PJSIP 모듈은 inbound 콜 수행시, INVITE 메시지로부터 채널을 생성하면서, Caller 의 정보를 설정(Parsing)한다. | |||
Caller 정보를 설정할 때 사용하는 SIP header 는 여러가지가 있는데, 다음의 우선 순위로 파싱을 한다. | |||
<pre> | |||
1. P-Asserted-Identity | |||
2. Remote-Party-ID | |||
3. FROM | |||
</pre> | |||
즉, 제일 먼저 P-Asserted-Identity 를 확인하고, 설정되어 있지 않다면, Remote-Party-ID 를 확인한다. 그리고 Remote-Party-ID 가 설정되어 있지 않다면 마지막으로 FROM 헤더를 확인하다. | |||
파싱되는 내용은 다음 과 같다. | |||
Display name 을 파싱해서 Caller name 으로 사용하고, Username 을 파싱해서 Caller number 로 사용한다. | |||
예를 들어 P-Asserted identity 헤더가 다음과 같이 설정 되었다고 하자. | |||
<pre> | |||
P-Asserted-Identity="test <1234@test.com>" | |||
</pre> | |||
그렇다면 다음과 같이 파싱이 된다. | |||
<pre> | |||
Caller name: test | |||
Caller number: 1234 | |||
</pre> | |||
자세한 함수는 | |||
<pre> | |||
res/res_pjsip_caller_id.c | |||
static int caller_id_incoming_request(struct ast_sip_session *session, pjsip_rx_data *rdata) | |||
</pre> | |||
에서 수행한다. | |||
[[Category:Asterisk]] | [[Category:Asterisk]] |
Latest revision as of 12:53, 4 October 2023
Overview
Asterisk pjsip module's sip message 관련 내용 정리
INVITE
Asterisk 에서의 모든 Inbound 채널 및 관련 세션 생성은 INVITE 메시지로부터 시작한다.
Caller info
PJSIP 모듈은 inbound 콜 수행시, INVITE 메시지로부터 채널을 생성하면서, Caller 의 정보를 설정(Parsing)한다.
Caller 정보를 설정할 때 사용하는 SIP header 는 여러가지가 있는데, 다음의 우선 순위로 파싱을 한다.
1. P-Asserted-Identity 2. Remote-Party-ID 3. FROM
즉, 제일 먼저 P-Asserted-Identity 를 확인하고, 설정되어 있지 않다면, Remote-Party-ID 를 확인한다. 그리고 Remote-Party-ID 가 설정되어 있지 않다면 마지막으로 FROM 헤더를 확인하다.
파싱되는 내용은 다음 과 같다. Display name 을 파싱해서 Caller name 으로 사용하고, Username 을 파싱해서 Caller number 로 사용한다.
예를 들어 P-Asserted identity 헤더가 다음과 같이 설정 되었다고 하자.
P-Asserted-Identity="test <1234@test.com>"
그렇다면 다음과 같이 파싱이 된다.
Caller name: test Caller number: 1234
자세한 함수는
res/res_pjsip_caller_id.c static int caller_id_incoming_request(struct ast_sip_session *session, pjsip_rx_data *rdata)
에서 수행한다.