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