Asterisk hints: Difference between revisions
Jump to navigation
Jump to search
(Created page with "== Overview == Asterisk hints 내용 정리 category:asterisk") |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
== Overview == | == Overview == | ||
Asterisk hints 내용 정리 | Asterisk hints 내용 정리 | ||
== Basic == | |||
Asterisk 는 SIP 서버이며, Event-Notification 을 위한 SUBSCRIBE/NOTIFY 매커니즘을 지원한다. | |||
Asterisk 는 내부적으로 장치 디바이스(전화기), 음성 사서함, 큐 등의 상태 정보를 관리한다. SIP 프로토콜은 기본적으로 event-notification 을 지원한다. Asterisk 는 이를 이용한 hint 라는 개념으로 extension number 혹은 name 을 device 와 연결시킨다. | |||
== Defining Hints == | |||
Asterisk 에서 extension 의 상태정보를 저장하고, 제공하기 위해서는 먼저 extension의 hint 를 정의해주어야 한다. 각각의 hint 상태정보는 매핑된 device/extension 의 상태정보에 따라 변경될 것이다. | |||
hint 를 정의하기 위해선느 다음의 문법을 따른다. | |||
<pre> | |||
exten = <extension>,hint,<device state id>[& <more dev state id],<presence state id> | |||
</pre> | |||
'''Example''' | |||
<pre> | |||
[internal] | |||
exten = 6001,hint,SIP/Alice&SIP/Alice-mobile | |||
exten = 6002,hint,SIP/Bob | |||
exten = 6003,hint,SIP/Charlie&DAHDI/3 | |||
exten = 6004,hint,SIP/Diane,CustomPresence:Diane | |||
exten = 6005,hint,,CustomPresence:Ellen | |||
</pre> | |||
* hint 설정시, 중간에 priority 를 설정하는 부분에 "hint"라고 설정하는 것을 제외하면 extension 정의 문법과 굉장히 유사하다. hint 는 run-time 이 아니라 load-time 에 적용되기 때문에 priority 가 필요없다. | |||
* 두개 이상의 Device 를 맵핑하기 위해서는 '&' 구분자를 이용하면 된다. | |||
* <presence state id>는 <device state id> 다음에 온다. 만약 <device state id> 만을 설정하고자 한다면 반드시 6005 예제와 같이 쉼표를 명시적으로 입력해주어야 한다. | |||
* Hint 설정은 Dialplan 어디에도 위치할 수 있다. 그리고 다른 일반적인 extension 과 같이 6001@internal, 6002@internal 과 같은 방식으로 Subscribe 가 가능하다. | |||
=== NOTIFY === | |||
설정된 Hint 상태 정보 변경시, SIP NOTIFY 메시지가 전송된다. | |||
<pre> | |||
# | |||
U 192.168.100.10:5060 -> 192.168.100.20:5060 | |||
NOTIFY sip:200-fake00085d13c6ab-1@192.168.100.20:5060;transport=udp SIP/2.0. | |||
Via: SIP/2.0/UDP 192.168.100.10:5060;branch=z9hG4bK3c445e56. | |||
Max-Forwards: 70. | |||
From: <sip:1010200@192.168.100.10:5060>;tag=as5bc393b2. | |||
To: "user1__1" <sip:200-fake00085d13c6ab-1@192.168.100.10:5060>;tag=945d8d6639. | |||
Contact: <sip:1010200@192.168.100.10:5060>. | |||
Call-ID: c9e395959e690d4b. | |||
CSeq: 172 NOTIFY. | |||
User-Agent: Asterisk PBX 1.8.15.0-117.fc12. | |||
Subscription-State: active. | |||
Event: dialog. | |||
Content-Type: application/dialog-info+xml. | |||
Content-Length: 216. | |||
. | |||
<?xml version="1.0"?> | |||
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="70" state="full" entity="sip:1010200@192.168.100.10:5060"> | |||
<dialog id="1010200"> | |||
<state>confirmed</state> | |||
</dialog> | |||
</dialog-info> | |||
</pre> | |||
== Querying Extension State == | |||
'''core show hints''' 명령어로 현재 설정된 모든 hint 정보를 확인할 수 있다. | |||
<pre> | |||
*CLI> core show hints | |||
-= Registered Asterisk Dial Plan Hints =- | |||
6003@internal : SIP/Charlie&DAHDI/3 State:Unavailable Watchers 0 | |||
6002@internal : SIP/Bob State:Unavailable Watchers 0 | |||
6001@internal : SIP/Alice&SIP/Alice- State:Unavailable Watchers 0 | |||
6005@internal : ,CustomPresence:Elle State:Unavailable Watchers 0 | |||
6004@internal : SIP/Diane,CustomPres State:Unavailable Watchers 0 | |||
---------------- | |||
- 5 hints registered | |||
</pre> | |||
== See also == | |||
* http://irockasterisk.blogspot.dk/2012/01/asterisk-hint-explained.html - Asterisk "hint" explained | |||
* https://wiki.asterisk.org/wiki/display/AST/Extension+State+and+Hints - Extension State and Hints | |||
* https://wiki.asterisk.org/wiki/display/AST/States+and+Presence - States and Presence | |||
[[category:asterisk]] | [[category:asterisk]] |
Latest revision as of 09:58, 11 May 2016
Overview
Asterisk hints 내용 정리
Basic
Asterisk 는 SIP 서버이며, Event-Notification 을 위한 SUBSCRIBE/NOTIFY 매커니즘을 지원한다.
Asterisk 는 내부적으로 장치 디바이스(전화기), 음성 사서함, 큐 등의 상태 정보를 관리한다. SIP 프로토콜은 기본적으로 event-notification 을 지원한다. Asterisk 는 이를 이용한 hint 라는 개념으로 extension number 혹은 name 을 device 와 연결시킨다.
Defining Hints
Asterisk 에서 extension 의 상태정보를 저장하고, 제공하기 위해서는 먼저 extension의 hint 를 정의해주어야 한다. 각각의 hint 상태정보는 매핑된 device/extension 의 상태정보에 따라 변경될 것이다.
hint 를 정의하기 위해선느 다음의 문법을 따른다.
exten = <extension>,hint,<device state id>[& <more dev state id],<presence state id>
Example
[internal] exten = 6001,hint,SIP/Alice&SIP/Alice-mobile exten = 6002,hint,SIP/Bob exten = 6003,hint,SIP/Charlie&DAHDI/3 exten = 6004,hint,SIP/Diane,CustomPresence:Diane exten = 6005,hint,,CustomPresence:Ellen
- hint 설정시, 중간에 priority 를 설정하는 부분에 "hint"라고 설정하는 것을 제외하면 extension 정의 문법과 굉장히 유사하다. hint 는 run-time 이 아니라 load-time 에 적용되기 때문에 priority 가 필요없다.
- 두개 이상의 Device 를 맵핑하기 위해서는 '&' 구분자를 이용하면 된다.
- <presence state id>는 <device state id> 다음에 온다. 만약 <device state id> 만을 설정하고자 한다면 반드시 6005 예제와 같이 쉼표를 명시적으로 입력해주어야 한다.
- Hint 설정은 Dialplan 어디에도 위치할 수 있다. 그리고 다른 일반적인 extension 과 같이 6001@internal, 6002@internal 과 같은 방식으로 Subscribe 가 가능하다.
NOTIFY
설정된 Hint 상태 정보 변경시, SIP NOTIFY 메시지가 전송된다.
# U 192.168.100.10:5060 -> 192.168.100.20:5060 NOTIFY sip:200-fake00085d13c6ab-1@192.168.100.20:5060;transport=udp SIP/2.0. Via: SIP/2.0/UDP 192.168.100.10:5060;branch=z9hG4bK3c445e56. Max-Forwards: 70. From: <sip:1010200@192.168.100.10:5060>;tag=as5bc393b2. To: "user1__1" <sip:200-fake00085d13c6ab-1@192.168.100.10:5060>;tag=945d8d6639. Contact: <sip:1010200@192.168.100.10:5060>. Call-ID: c9e395959e690d4b. CSeq: 172 NOTIFY. User-Agent: Asterisk PBX 1.8.15.0-117.fc12. Subscription-State: active. Event: dialog. Content-Type: application/dialog-info+xml. Content-Length: 216. . <?xml version="1.0"?> <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="70" state="full" entity="sip:1010200@192.168.100.10:5060"> <dialog id="1010200"> <state>confirmed</state> </dialog> </dialog-info>
Querying Extension State
core show hints 명령어로 현재 설정된 모든 hint 정보를 확인할 수 있다.
*CLI> core show hints -= Registered Asterisk Dial Plan Hints =- 6003@internal : SIP/Charlie&DAHDI/3 State:Unavailable Watchers 0 6002@internal : SIP/Bob State:Unavailable Watchers 0 6001@internal : SIP/Alice&SIP/Alice- State:Unavailable Watchers 0 6005@internal : ,CustomPresence:Elle State:Unavailable Watchers 0 6004@internal : SIP/Diane,CustomPres State:Unavailable Watchers 0 ---------------- - 5 hints registered
See also
- http://irockasterisk.blogspot.dk/2012/01/asterisk-hint-explained.html - Asterisk "hint" explained
- https://wiki.asterisk.org/wiki/display/AST/Extension+State+and+Hints - Extension State and Hints
- https://wiki.asterisk.org/wiki/display/AST/States+and+Presence - States and Presence