Download presentation
Presentation is loading. Please wait.
Published byAnastasia Chandler Modified over 9 years ago
1
1 Creative Innovation – Customer Satisfaction – Continual Quality Improvement Making the most of Connected Party Information in Asterisk Mark Michelson Software Developer, Digium, Inc.
2
What is Connected Party Information? ISDN: COLP and CONP SIP: P-Asserted-Identity and Remote-Party-Id "The reverse of Caller*ID" Can be updated throughout the course of a call
3
Contributors Gareth Palmer –Community member from New Zealand –Initial implementation (issue 8824) for chan_sip and chan_skinny, func_connectedline Richard Mudgett –Digium Software Developer –Core API, chan_misdn, chan_dahdi, libpri Mark Michelson –Digium Software Developer –chan_sip, app_dial, app_queue, features (transfers, pickup, etc.), interception macros
4
Configuration example [Alice] callerid = Alice [Bob] callerid = Bob [Carol] callerid = Carol
5
Alice Calls Bob Prior to 1.6.3 Alice dials Bob... Alice's DisplayBob's Display Bob's phone rings... Alice's DisplayBob's Display Alice
6
Bob Transfers Alice to Carol prior to 1.6.3 Bob preses transfer and calls Carol Bob's DisplayCarol's Display Alice and Carol are connected. Alice's DisplayCarol's Display Alice Bob
7
Alice Calls Bob in 1.6.3+ Alice dials Bob... Alice's DisplayBob's Display Bob's phone rings... Alice's DisplayBob's Display Bob Alice
8
Bob Transfers Alice to Carol prior to 1.6.3 Bob preses transfer and calls Carol Bob's DisplayCarol's Display Alice and Carol are connected. Alice's DisplayCarol's Display Carol Bob Carol Alice
9
SIP Technical Details Read P-Asserted-Identity and Remote-Party-ID headers on incoming messages. Transmit either P-Asserted-Identity or Remote-Party-ID headers on –Provisional responses to INVITEs –200 OK responses to INVITEs –Outbound INVITEs –Outbound UPDATEs
10
SIP configuration settings sendrpid – Four possible values: –rpid: Use Remote-Party-ID header –pai: Use P-Asserted-Identity header –yes: Same as “rpid” (old old old option) –no: Do not send connected party information trustrpid – Yes or no option. Tells whether to accept connected party information.
11
SIP configuration settings, contd. rpid_immediate – Yes or no setting. Should we generate a provisional response just for communicating updated connected party information? rpid_update: Yes or no setting. Controls whether connected line updates can be sent in UPDATE requests.
12
ISDN technical details Both mISDN and libpri use new IEs –connected-number-ie in CONNECT –Connected name facility (Q.SIG only) FACILITY and NOTIFY messages used more frequently
13
ISDN configuration settings misdn.conf –More type-of-number prefix strings –outgoing_colp: Controls whether to send COLP 0: Send out COLP unaltered 1: Force COLP to restricted 2: Do not send COLP –display_connected: Affects display IE in CONNECT 0: No COLP/CONP in display IE 1: CONP in display IE 2: COLP in display IE 3: COLP and CONP in display IE
14
ISDN configuration settings, contd. misdn.conf, continued –display_setup: Affects display IE in SETUP 0: No caller information in display IE 1: Caller name in display IE 2: Caller number in display IE 3: Caller name and number in display IE chan_dahdi.conf: COLP/CONP supported with no new configuration options.
15
"Just Works" vs. Meticulous Control "Just works" –callerid setting –Automatically updated on transfer Meticulous control –new configuration settings –func_connectedline –'I' option to Dial –Interception macros
16
func_connectedline CONNECTEDLINE(parameter[,i]) Valid Parameters: –name: called name –number: called number –all: called name and number –ton: type of number –pres: called number presentation The 'i' option: –If present, do not send a message out, only make the change internally.
17
What's wrong with the following dialplan? [default] exten => 4000,1,Set(CONNECTEDLINE(name)=John Smith) exten => 4000,n,Set(CONNECTEDLINE(number)=4000) exten => 4000,n,Set(CONNECTEDLINE(ton)=0) exten => 4000,n,Set(CONNECTEDLINE(pres)=allowed) There are four messages sent to the caller's channel as a result of this!
18
Corrected Dialplan example [default] ; Notice the i in the first three statements exten => 4000,1,Set(CONNECTEDLINE(name,i)=John Smith) exten => 4000,n,Set(CONNECTEDLINE(number,i)=4000) exten => 4000,n,Set(CONNECTEDLINE(ton,i)=0) exten => 4000,n,Set(CONNECTEDLINE(pres)=allowed) Now only a single message is sent after all parameters are set.
19
New option for Dial and Queue I – Do not overwrite connected party information already set on inbound channel. Slightly different semantics from not trusting received information Common dialplan idiom: [default] exten => 4000,1,Set(CONNECTEDLINE(name,i)=John Smith) exten => 4000,n,Set(CONNECTEDLINE(number,i)=4000) exten => 4000,n,Set(CONNECTEDLINE(ton,i)=0) exten => 4000,n,Set(CONNECTEDLINE(pres)=allowed) exten => 4000,n,Dial(SIP/4000,20,I) exten => 4000,n,Hangup
20
Interception macros Set through channel variables –CONNECTED_LINE_CALLER_SEND_ MACRO –CONNECTED_LINE_CALLER_SEND_ MACRO_ARGS –CONNECTED_LINE_CALLEE_SEND_ MACRO –CONNECTED_LINE_CALLEE_SEND_ MACRO_ARGS CALLER_SEND macro runs on caller's channel if connected party update is received on callee's channel, for example Update is automatically sent (so 'i' usage is recommended) Recommend to prefix channel variables with __
21
Interception Macro Example [default] exten => 3000,1,Set(__CONNECTED_LINE_CALLER_SEND_MACRO=add_pfx) exten => 3000,n,Set(__CONNECTED_LINE_CALLER_SEND_MACRO_ARGS=45,4) exten => 3000,n,Dial(SIP/3000,30) exten => 3000,n,Hangup [macro-add_pfx] ;ARG1 is prefix to add ;ARG2 is number of digits at end to add prefix to exten => s,1,Set(NOPREFIX=${CONNECTEDLINE(number):-${ARG2}}) exten => s,n,Set(CONNECTEDLINE(number,i)=${ARG1}${NOPREFIX}) exten => s,n,MacroExit
22
Ideas for Usage IVR that updates connected name on each selection made Disguise the true number of an individual with a generic "company number" Use interception macros to make outbound connected number E.164 formatted You can do a lot more in an interception macro than just update connected party info...
23
Troubleshooting Tips For CONNECTEDLINE, check for rampant 'i's. Check channel configuration settings. The default settings may not be what you want or expect. Check packet captures. Your equipment may not support what Asterisk sends. As always, bugs should be reported to https://issues.asterisk.org
24
Addendum: Redirecting Similar to connected party info, but for forwarded/deflected calls REDIRECTING dialplan function similar to CONNECTEDLINE Be certain to read CHANGES file for some gotchas with ISDN
25
Future Development Ideas Manager Events RECV variants of interception macros Update other channel drivers Interception macro makeover
26
I bet you have questions, now...
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.