Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Creative Innovation – Customer Satisfaction – Continual Quality Improvement Making the most of Connected Party Information in Asterisk Mark Michelson.

Similar presentations


Presentation on theme: "1 Creative Innovation – Customer Satisfaction – Continual Quality Improvement Making the most of Connected Party Information in Asterisk Mark Michelson."— Presentation transcript:

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...


Download ppt "1 Creative Innovation – Customer Satisfaction – Continual Quality Improvement Making the most of Connected Party Information in Asterisk Mark Michelson."

Similar presentations


Ads by Google