David Hinkle
2004-Aug-30 11:23 UTC
[Asterisk-Users] Snom Programmable button Mini Howto and ring state patch
The snom 200 and 220 have five programmable buttons. Each button has a
led that can be used to indecate if an extension is idle, in use, or
ringing. A button pannel for the 220 is also comming out soon that will
have 20'ish programmable buttons on board.
This is a killer app for any company that has receptionists handle
calls, and pretty usefull for everyone else.
As a matter of fact, Asterisk already supports phone idle/in use states
for the buttons, and at the bottom of this message you will find a patch
to enable the ring state.
Howto:
1. Configure the programable buttons as "destination" and enter the
extension in the field. After saving the page the phone will convert
the extension to a sip url, which is fine.
2. Modify your asterisk dialplan to provide "hints" that map a given
extension to a channel. (In asterisk, a channel can be busy or ringing,
but an extension is just a string of numbers that activate one or more
applications). Asterisk seems to provide syntax for allowing more than
one channel to be mapped to any particular extension with the hint
system, but I did not investigate that.
Example:
exten => 200,hint,SIP/RonC
exten => 200,1,Macro(stdexten,SIP/RonC)
exten => 201,hint,SIP/JeanK
exten => 201,1,Macro(stdexten,SIP/JeanK)
exten => 202,hint,SIP/JeffT
exten => 202,1,Macro(stdexten,SIP/JeffT)
3. You must reload the dialplan and then reboot the phone for it's
subscriptions to take effect. After that, you should have working
lights.
4. If you want the lights to blink on ringing, apply the following
patch to the asterisk code.
You can not pick up a call by hitting the blinking button, I was going
to do this work but I decided to just train the receptionists to hit *8
instead. I have not studied this extensivly, but to implement it, i
think it would just require asterisk to have support for sip
"replaces"
(I don't know if asterisk supports this or not) and the ringing notify
needs to go out with a few more fields. (It seems that the snom phone
contacts the sip device listed in one of the ring notify message fields
with an invite including a "replaces" header to pick up a call)
I have also included a sip trace of a snom phone picking up a call
placed to another phone using the blinking button in case anybody out
there wants to tackle this problem themselves (Sample trace was
collected when using snom phones with snom's sip proxy software).
Please note that it seems like we must include the extra fields in the
ring notify before the snom phone will procude the proper "replaces"
invite in order to do a standards compliant call pickup.
Notes on patch:
If this patch is not in the proper format for submissions please provide
me a link to the asterisk submission policies. It has been tested here
at DerbyTech for about a week on our live phone system.
I submit this patch to the asterisk project under the GPL with hope that
it will be resubmited to CVS.
Thankyou,
David Hinkle
Sr. Linux Engineer
DerbyTech
-------------- next part --------------
A non-text attachment was scrubbed...
Name: snom-ring.patch
Type: text/x-patch
Size: 2411 bytes
Desc: not available
Url :
http://lists.digium.com/pipermail/asterisk-users/attachments/20040830/34469895/snom-ring.bin
-------------- next part --------------
********************************************************************************
Call to 9723048722@abpusa.com as seen by Secretary
Answered by Secretary
********************************************************************************
Received from udp:209.189.239.106:5060 at 24/8/2004 11:35:01:770 (1163 bytes):
NOTIFY sip:9723048720@4.12.220.193:5060;line=t5116uyl SIP/2.0
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-05024cf591289707a53e4345ef25f87f.1
Via: SIP/2.0/UDP 4.13.147.200:11636;branch=z9hG4bK-98k96vibydan;rport
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: <sip:9723048722@abpusa.com;user=phone>;tag=wr4771pry1
To: <sip:9723048720@abpusa.com>;tag=gh50agmbxb
Call-ID: 3c26700d3618-u5uzu5ev2xn6@4-12-220-193
CSeq: 9 NOTIFY
Max-Forwards: 69
Contact: <sip:9723048722@abpusa.com;gruu=dekqyehe>
Event: dialog
Content-Type: application/dialog-info+xml
Content-Length: 556
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
version="8" state="full"
entity="sip:9723048722@abpusa.com;user=phone"><dialog
id="-6" direction="recipient"
call-id="3842797887@172.16.84.100" local-tag="5e7xzl7sqh"
remote-tag="2216503390"><state>early</state><local><identity
display="""">sip:9723048722@abpusa.com</identity><target
uri="sip:9723048722@abpusa.com"/></local><remote><identity
display=""Shanon
8721"">sip:9723048721@abpusa.com</identity><target
uri="sip:9723048721@abpusa.com"/></remote></dialog></dialog-info>
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:01:792 (430 bytes):
SIP/2.0 200 Ok
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-05024cf591289707a53e4345ef25f87f.1
Via: SIP/2.0/UDP 4.13.147.200:11636;branch=z9hG4bK-98k96vibydan;rport
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: <sip:9723048722@abpusa.com;user=phone>;tag=wr4771pry1
To: <sip:9723048720@abpusa.com>;tag=gh50agmbxb
Call-ID: 3c26700d3618-u5uzu5ev2xn6@4-12-220-193
CSeq: 9 NOTIFY
Content-Length: 0
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:03:418 (1049 bytes):
INVITE sip:9723048721@abpusa.com SIP/2.0
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-i2ze8xaij5js;rport
From: "Shanon ABP" <sip:9723048720@abpusa.com>;tag=8h1frkawky
To: ""Shano" <sip:9723048721@abpusa.com>
Call-ID: 3c26d2021fc4-vg9gmdlfwjb2@4-12-220-193
CSeq: 1 INVITE
Max-Forwards: 70
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
Replaces: 3842797887@172.16.84.100;to-tag=2216503390;from-tag=5e7xzl7sqh
P-Key-Flags: keys="3"
User-Agent: snom200-3.42
Accept-Language: en
Accept: application/sdp
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK,
MESSAGE, INFO
Allow-Events: talk, hold, refer
Supported: timer, 100rel, replaces
Session-Expires: 3600
Content-Type: application/sdp
Content-Length: 292
v=0
o=root 510805774 510805774 IN IP4 4.12.220.193
s=call
c=IN IP4 4.12.220.193
t=0 0
m=audio 10002 RTP/AVP 0 8 3 18 2 101
a=rtpmap:0 pcmu/8000
a=rtpmap:8 pcma/8000
a=rtpmap:3 gsm/8000
a=rtpmap:18 g729/8000
a=rtpmap:
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
--------------------------------------------------------------------------------
Received from udp:209.189.239.106:5060 at 24/8/2004 11:35:03:622 (281 bytes):
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-i2ze8xaij5js;rport
From: "Shanon ABP" <sip:9723048720@abpusa.com>;tag=8h1frkawky
To: <Shano" <sip:9723048721@abpusa.com>>
Call-ID: 3c26d2021fc4-vg9gmdlfwjb2@4-12-220-193
CSeq: 1 INVITE
Content-Length: 0
--------------------------------------------------------------------------------
Received from udp:209.189.239.106:5060 at 24/8/2004 11:35:03:670 (1088 bytes):
INVITE sip:9723048720@4.12.220.193:5060;line=t5116uyl SIP/2.0
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-075ebc832ec20436bc47ec24ed457f9d.1
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-50e2b84768434aab67408fad4af245bc.2
Via: SIP/2.0/UDP 209.189.239.106:5067;branch=z9hG4bK-middle-1934895-200.0
Via: SIP/2.0/UDP 172.16.84.100:5060;branch=z9hG4bK2503562144
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
To: <sip:9723048722@abpusa.com>
Call-ID: 3842797887@172.16.84.100
CSeq: 200 INVITE
Max-Forwards: 68
Contact:
<sip:9723048721*abpusa.com-4.13.147.200+15060@209.189.239.106:5067>
User-Agent: Azacall200
subject: Call_Invite
Allow: INVITE, ACK, CANCEL, BYE, REFER, NOTIFY
Replaces: 3c26d2021fc4-vg9gmdlfwjb2@4-12-220-193;to-tag=8h1frkawky
Content-Type: application/sdp
Content-Length: 189
v=0
o=middle 1934895 39476 IN IP4 209.189.239.106
s=-
c=IN IP4 209.189.239.106
t=0 0
m=audio 39476 RTP/AVP 18 0 8 4 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:03:691 (373 bytes):
CANCEL sip:9723048721@abpusa.com SIP/2.0
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-i2ze8xaij5js;rport
From: "Shanon ABP" <sip:9723048720@abpusa.com>;tag=8h1frkawky
To: ""Shano" <sip:9723048721@abpusa.com>
Call-ID: 3c26d2021fc4-vg9gmdlfwjb2@4-12-220-193
CSeq: 1 CANCEL
Max-Forwards: 70
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
Content-Length: 0
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:03:804 (1068 bytes):
SIP/2.0 200 Ok
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-075ebc832ec20436bc47ec24ed457f9d.1
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-50e2b84768434aab67408fad4af245bc.2
Via: SIP/2.0/UDP 209.189.239.106:5067;branch=z9hG4bK-middle-1934895-200.0
Via: SIP/2.0/UDP 172.16.84.100:5060;branch=z9hG4bK2503562144
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
To: <sip:9723048722@abpusa.com>;tag=vcitdd0d3w
Call-ID: 3842797887@172.16.84.100
CSeq: 200 INVITE
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
User-Agent: snom200-3.42
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK,
MESSAGE, INFO
Allow-Events: talk, hold, refer
Supported: timer, 100rel, replaces
Content-Type: application/sdp
Content-Length: 222
v=0
o=root 1283593033 1283593033 IN IP4 4.12.220.193
s=call
c=IN IP4 4.12.220.193
t=0 0
m=audio 10002 RTP/AVP 18 101
a=rtpmap:18 g729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
--------------------------------------------------------------------------------
Received from udp:209.189.239.106:5060 at 24/8/2004 11:35:03:905 (306 bytes):
SIP/2.0 481 Call/Transaction does not exist
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-i2ze8xaij5js;rport
From: "Shanon ABP" <sip:9723048720@abpusa.com>;tag=8h1frkawky
To: <Shano" <sip:9723048721@abpusa.com>>
Call-ID: 3c26d2021fc4-vg9gmdlfwjb2@4-12-220-193
CSeq: 1 CANCEL
Content-Length: 0
--------------------------------------------------------------------------------
Received from udp:209.189.239.106:5060 at 24/8/2004 11:35:04:045 (1169 bytes):
NOTIFY sip:9723048720@4.12.220.193:5060;line=t5116uyl SIP/2.0
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-b92efd7b0648a6831880c4ff3c3f1a3d.1
Via: SIP/2.0/UDP 4.13.147.200:11636;branch=z9hG4bK-pt5nt22zcgm4;rport
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: <sip:9723048722@abpusa.com;user=phone>;tag=wr4771pry1
To: <sip:9723048720@abpusa.com>;tag=gh50agmbxb
Call-ID: 3c26700d3618-u5uzu5ev2xn6@4-12-220-193
CSeq: 10 NOTIFY
Max-Forwards: 69
Contact: <sip:9723048722@abpusa.com;gruu=dekqyehe>
Event: dialog
Content-Type: application/dialog-info+xml
Content-Length: 561
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
version="9" state="full"
entity="sip:9723048722@abpusa.com;user=phone"><dialog
id="-6" direction="recipient"
call-id="3842797887@172.16.84.100" local-tag="5e7xzl7sqh"
remote-tag="2216503390"><state>terminated</state><local><identity
display="""">sip:9723048722@abpusa.com</identity><target
uri="sip:9723048722@abpusa.com"/></local><remote><identity
display=""Shanon
8721"">sip:9723048721@abpusa.com</identity><target
uri="sip:9723048721@abpusa.com"/></remote></dialog></dialog-info>
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:04:215 (431 bytes):
SIP/2.0 200 Ok
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-b92efd7b0648a6831880c4ff3c3f1a3d.1
Via: SIP/2.0/UDP 4.13.147.200:11636;branch=z9hG4bK-pt5nt22zcgm4;rport
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: <sip:9723048722@abpusa.com;user=phone>;tag=wr4771pry1
To: <sip:9723048720@abpusa.com>;tag=gh50agmbxb
Call-ID: 3c26700d3618-u5uzu5ev2xn6@4-12-220-193
CSeq: 10 NOTIFY
Content-Length: 0
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:04:354 (1068 bytes):
SIP/2.0 200 Ok
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-075ebc832ec20436bc47ec24ed457f9d.1
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-50e2b84768434aab67408fad4af245bc.2
Via: SIP/2.0/UDP 209.189.239.106:5067;branch=z9hG4bK-middle-1934895-200.0
Via: SIP/2.0/UDP 172.16.84.100:5060;branch=z9hG4bK2503562144
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
To: <sip:9723048722@abpusa.com>;tag=vcitdd0d3w
Call-ID: 3842797887@172.16.84.100
CSeq: 200 INVITE
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
User-Agent: snom200-3.42
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK,
MESSAGE, INFO
Allow-Events: talk, hold, refer
Supported: timer, 100rel, replaces
Content-Type: application/sdp
Content-Length: 222
v=0
o=root 1283593033 1283593033 IN IP4 4.12.220.193
s=call
c=IN IP4 4.12.220.193
t=0 0
m=audio 10002 RTP/AVP 18 101
a=rtpmap:18 g729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:05:414 (1068 bytes):
SIP/2.0 200 Ok
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-075ebc832ec20436bc47ec24ed457f9d.1
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-50e2b84768434aab67408fad4af245bc.2
Via: SIP/2.0/UDP 209.189.239.106:5067;branch=z9hG4bK-middle-1934895-200.0
Via: SIP/2.0/UDP 172.16.84.100:5060;branch=z9hG4bK2503562144
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
To: <sip:9723048722@abpusa.com>;tag=vcitdd0d3w
Call-ID: 3842797887@172.16.84.100
CSeq: 200 INVITE
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
User-Agent: snom200-3.42
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK,
MESSAGE, INFO
Allow-Events: talk, hold, refer
Supported: timer, 100rel, replaces
Content-Type: application/sdp
Content-Length: 222
v=0
o=root 1283593033 1283593033 IN IP4 4.12.220.193
s=call
c=IN IP4 4.12.220.193
t=0 0
m=audio 10002 RTP/AVP 18 101
a=rtpmap:18 g729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:06:494 (503 bytes):
SUBSCRIBE sip:9723048720@abpusa.com;type=user;vendor=snom;product=snom200
SIP/2.0
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-5mzr5y0282lx;rport
From: <sip:9723048720@abpusa.com>;tag=9vqhfm78gq
To: <sip:9723048720@abpusa.com;type=user;vendor=snom;product=snom200>
Call-ID: 3c26700d3baf-j128hl27f114@4-12-220-193
CSeq: 10 SUBSCRIBE
Max-Forwards: 70
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
Event: sip-config
Accept: application/x-snom-config
Expires: 3600
Content-Length: 0
--------------------------------------------------------------------------------
Received from udp:209.189.239.106:5060 at 24/8/2004 11:35:06:666 (301 bytes):
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-5mzr5y0282lx;rport
From: <sip:9723048720@abpusa.com>;tag=9vqhfm78gq
To: <sip:9723048720@abpusa.com;type=user;vendor=snom;product=snom200>
Call-ID: 3c26700d3baf-j128hl27f114@4-12-220-193
CSeq: 10 SUBSCRIBE
Content-Length: 0
--------------------------------------------------------------------------------
Received from udp:209.189.239.106:5060 at 24/8/2004 11:35:06:726 (319 bytes):
SIP/2.0 404 Not Found
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-5mzr5y0282lx;rport
From: <sip:9723048720@abpusa.com>;tag=9vqhfm78gq
To:
<sip:9723048720@abpusa.com;type=user;vendor=snom;product=snom200>;tag=2fgywchn1a
Call-ID: 3c26700d3baf-j128hl27f114@4-12-220-193
CSeq: 10 SUBSCRIBE
Content-Length: 0
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:07:464 (1068 bytes):
SIP/2.0 200 Ok
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-075ebc832ec20436bc47ec24ed457f9d.1
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-50e2b84768434aab67408fad4af245bc.2
Via: SIP/2.0/UDP 209.189.239.106:5067;branch=z9hG4bK-middle-1934895-200.0
Via: SIP/2.0/UDP 172.16.84.100:5060;branch=z9hG4bK2503562144
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
To: <sip:9723048722@abpusa.com>;tag=vcitdd0d3w
Call-ID: 3842797887@172.16.84.100
CSeq: 200 INVITE
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
User-Agent: snom200-3.42
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK,
MESSAGE, INFO
Allow-Events: talk, hold, refer
Supported: timer, 100rel, replaces
Content-Type: application/sdp
Content-Length: 222
v=0
o=root 1283593033 1283593033 IN IP4 4.12.220.193
s=call
c=IN IP4 4.12.220.193
t=0 0
m=audio 10002 RTP/AVP 18 101
a=rtpmap:18 g729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:12:076 (1068 bytes):
SIP/2.0 200 Ok
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-075ebc832ec20436bc47ec24ed457f9d.1
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-50e2b84768434aab67408fad4af245bc.2
Via: SIP/2.0/UDP 209.189.239.106:5067;branch=z9hG4bK-middle-1934895-200.0
Via: SIP/2.0/UDP 172.16.84.100:5060;branch=z9hG4bK2503562144
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
To: <sip:9723048722@abpusa.com>;tag=vcitdd0d3w
Call-ID: 3842797887@172.16.84.100
CSeq: 200 INVITE
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
User-Agent: snom200-3.42
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK,
MESSAGE, INFO
Allow-Events: talk, hold, refer
Supported: timer, 100rel, replaces
Content-Type: application/sdp
Content-Length: 222
v=0
o=root 1283593033 1283593033 IN IP4 4.12.220.193
s=call
c=IN IP4 4.12.220.193
t=0 0
m=audio 10002 RTP/AVP 18 101
a=rtpmap:18 g729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:20:634 (1068 bytes):
SIP/2.0 200 Ok
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-075ebc832ec20436bc47ec24ed457f9d.1
Via: SIP/2.0/UDP
209.189.239.106:5060;branch=z9hG4bK-50e2b84768434aab67408fad4af245bc.2
Via: SIP/2.0/UDP 209.189.239.106:5067;branch=z9hG4bK-middle-1934895-200.0
Via: SIP/2.0/UDP 172.16.84.100:5060;branch=z9hG4bK2503562144
Record-Route: <sip:abpusa.com:5060;maddr=209.189.239.106>
From: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
To: <sip:9723048722@abpusa.com>;tag=vcitdd0d3w
Call-ID: 3842797887@172.16.84.100
CSeq: 200 INVITE
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
User-Agent: snom200-3.42
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK,
MESSAGE, INFO
Allow-Events: talk, hold, refer
Supported: timer, 100rel, replaces
Content-Type: application/sdp
Content-Length: 222
v=0
o=root 1283593033 1283593033 IN IP4 4.12.220.193
s=call
c=IN IP4 4.12.220.193
t=0 0
m=audio 10002 RTP/AVP 18 101
a=rtpmap:18 g729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
--------------------------------------------------------------------------------
Sent to udp:209.189.239.106:5060 at 24/8/2004 11:35:22:306 (478 bytes):
BYE sip:abpusa.com:5060;maddr=209.189.239.106 SIP/2.0
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-x3q7efcoeke7;rport
Route: <sip:9723048721*abpusa.com-4.13.147.200+15060@209.189.239.106:5067>
From: <sip:9723048722@abpusa.com>;tag=vcitdd0d3w
To: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
Call-ID: 3842797887@172.16.84.100
CSeq: 1 BYE
Max-Forwards: 70
Contact: <sip:9723048720@abpusa.com;gruu=e0vh1e8m>
User-Agent: snom200-3.42
Content-Length: 0
--------------------------------------------------------------------------------
Received from udp:209.189.239.106:5060 at 24/8/2004 11:35:22:643 (271 bytes):
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-x3q7efcoeke7;rport
From: <sip:9723048722@abpusa.com>;tag=vcitdd0d3w
To: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
Call-ID: 3842797887@172.16.84.100
CSeq: 1 BYE
Content-Length: 0
--------------------------------------------------------------------------------
Received from udp:209.189.239.106:5060 at 24/8/2004 11:35:23:625 (267 bytes):
SIP/2.0 200 OK
Via: SIP/2.0/UDP 4.12.220.193:5060;branch=z9hG4bK-x3q7efcoeke7;rport
From: <sip:9723048722@abpusa.com>;tag=vcitdd0d3w
To: "Shanon 8721" <sip:9723048721@abpusa.com>;tag=2216503390
Call-ID: 3842797887@172.16.84.100
CSeq: 1 BYE
Content-Length: 0
John Todd
2004-Aug-30 14:20 UTC
[Asterisk-Users] Snom Programmable button Mini Howto and ring state patch
At 1:23 PM -0500 on 8/30/04, David Hinkle wrote:>The snom 200 and 220 have five programmable buttons. Each button has a >led that can be used to indecate if an extension is idle, in use, or >ringing. A button pannel for the 220 is also comming out soon that will >have 20'ish programmable buttons on board. > >This is a killer app for any company that has receptionists handle >calls, and pretty usefull for everyone else. > >As a matter of fact, Asterisk already supports phone idle/in use states >for the buttons, and at the bottom of this message you will find a patch >to enable the ring state. > >Howto: > >1. Configure the programable buttons as "destination" and enter the >extension in the field. After saving the page the phone will convert >the extension to a sip url, which is fine. > >2. Modify your asterisk dialplan to provide "hints" that map a given >extension to a channel. (In asterisk, a channel can be busy or ringing, >but an extension is just a string of numbers that activate one or more >applications). Asterisk seems to provide syntax for allowing more than >one channel to be mapped to any particular extension with the hint >system, but I did not investigate that. > >Example: > >exten => 200,hint,SIP/RonC >exten => 200,1,Macro(stdexten,SIP/RonC) > >exten => 201,hint,SIP/JeanK >exten => 201,1,Macro(stdexten,SIP/JeanK) > >exten => 202,hint,SIP/JeffT >exten => 202,1,Macro(stdexten,SIP/JeffT) > >3. You must reload the dialplan and then reboot the phone for it's >subscriptions to take effect. After that, you should have working >lights. > >4. If you want the lights to blink on ringing, apply the following >patch to the asterisk code. > >You can not pick up a call by hitting the blinking button, I was going >to do this work but I decided to just train the receptionists to hit *8 >instead. I have not studied this extensivly, but to implement it, i >think it would just require asterisk to have support for sip "replaces" >(I don't know if asterisk supports this or not) and the ringing notify >needs to go out with a few more fields. (It seems that the snom phone >contacts the sip device listed in one of the ring notify message fields >with an invite including a "replaces" header to pick up a call) > >I have also included a sip trace of a snom phone picking up a call >placed to another phone using the blinking button in case anybody out >there wants to tackle this problem themselves (Sample trace was >collected when using snom phones with snom's sip proxy software). >Please note that it seems like we must include the extra fields in the >ring notify before the snom phone will procude the proper "replaces" >invite in order to do a standards compliant call pickup. > >Notes on patch: >If this patch is not in the proper format for submissions please provide >me a link to the asterisk submission policies. It has been tested here >at DerbyTech for about a week on our live phone system. > >I submit this patch to the asterisk project under the GPL with hope that >it will be resubmited to CVS. > >Thankyou, >David Hinkle >Sr. Linux Engineer >DerbyTech >This is pretty cool! I might get a Snom phone just to try them out. You asked for comments, so here are a few: 1) Send the patch in "diff -u" format; that's the format used in the bugtracker. 2) You'll need to sign the disclaimer on the http://bugs.digium.com/ interface. This disclaimer doesn't have much of a downside, and all patches to Asterisk for the public CVS have to be disclaimed in this way (avoids SCO-type lawsuits, etc.) 3) Have you looked at the configuration options for the Polycom IP600 phones? I don't know if this trick works with them, but they are pretty slick and have very programmable interfaces which may be almost compatible (or completely compatible) with this method. I haven't looked, but that would be a very cool addition to those phones as well. 4) I'd say you've got 25% of the feature done. Putting the extra effort into having the system pick up the call from any phone when one hits the flashing button would be I think another 25%. Then, the final 50% would be if the button was pressed from a third-party phone while a call was already in progress that all three callers would be bridged together. (more work than it seems, so I give it 50%.) Bit by bit, Asterisk is getting there. Asterisk in general needs to support more PBX-like features. While it says it's an iPBX, it's still falling a bit short when compared to features found in even the most basic key system. See my long posts over time on feature ideas that I've sent to -dev and -users. JT