History: Call RedirectionSource of version: 25 (current)Redirection is used for call forwarding and for some local number portability implementations. A redirected call will do one of the following on the SMG: originate, terminate, or transit. The origination consists of a single outbound call. The termination consists of a single inbound call. The transit consists of an inbound and an outbound call. The implementation is composed of an ISUP component and a dialplan component. The ISUP component is responsible for inserting redirection parameters supplied by the dialplan into outbound IAMs for outbound calls, and collecting redirection parameters from inbound IAMs on inbound calls and sending that information to the dialplan. The dialplan is responsible for analysing and processing the information and making decisions so that redirected calls are properly handled.
The redirection information contained in the IAM is a central part of the feature implementation. Moving that information between the ISUP engine (ss7boost) and the dialplan requires using the RDNIS channel variable in Asterisk. This information will be an ASCII string structured in dash-separated-value format as follows: __::RDN-RDNA-RDPR-RDNP-OCDN-I-O-R-C-N::__ {FANCYTABLE(head=>Parameter~|~Code~|~F/V~|~Width~|~Values)} Redirecting Number~|~RDN~|~V~|~1..31 char~|~digits~|~ Redirecting Number Nature of Address Indicator~|~RDNA~|~F~|~3 char~|~000..255~|~ Redirecting Number Presentation~|~RDPR~|~F~|~1 char~|~0..3~|~ Redirecting Number Number Plan~|~RDNP~|~F~|~1 char~|~0..7~|~ Original Called Number~|~OCDN~|~V~|~1..31 char~|~digits~|~ Redirecting Indicator~|~I~|~F~|~1 char~|~'0'..'7'~|~ Original Redirecting Reason~|~O~|~F~|~1 char~|~hexadecimal digits~|~ Redirecting Reason~|~R~|~F~|~1 char~|~hexadecimal digits~|~ Redirection Counter~|~C~|~F~|~1 char~|~'1'..'5'~|~ Reserve National~|~N~|~F~|~1 char~|~hexadecimal digits~|~ {FANCYTABLE} Note: Additions will be forthcoming soon for fields for Presentation and Nature of Address information elements for the Redirecting Number and the Original Called Number. The maximum string length will be 256 chars which fits into the RDNIS Asterisk channel variable and the SIP redirection variable string in Asterisk. Currently, the string limit is set to 79 chars. Future revisions will expand this limit. ss7boost collects the information from the IAM and formats it in the CSV format shown above. The string is then passed in a call start message to sangoma_mgd who transfers the string into the RDNIS channels variable for the call session with Asterisk. Refer to Q.762 and Q.763 for descriptions of parameters and meanings of code values. AGI scripts are needed to create and use the RDNIS strings for this feature. More on that topic will be published at a later date. If the RDNIS string is zero length, then the call has no redirection parameters associated with it. Future versions of this feature may have some support for copying ISUP parameters from an inbound call to an outbound ISUP call. Research is still underway to determine the need for this capability. It has been determined that it is possible for the size of the ISUP parameters needing to be copied to be greater than the 256 char limit for carrying this information imposed by the Asterisk SIP implementation. Some external caching mechanism that is accessible to all SMG nodes in a network may be a solution for transferring this information. To set the RDNIS variable prior to making an outbound SMG ISUP call, use the technique shown in the /etc/asterisk/extensions.conf example below: ~pp~ [ss7-imt] exten => _1X.,1,noop exten => _1X.,2,noop(${CALLERID(rdnis)}) exten => _1X.,3,Set(CALLERID(rdnis)=3333-4444-1-1-1-1-0) exten => _1X.,4,noop(${CALLERID(rdnis)}) exten => _1X.,5,Dial(WOOMERA/g1/${EXTEN:1}|60) ~/pp~ To examine the RDNIS of an inbound SMG ISUP call use the technique shown in the /etc/asterisk/extensions.conf example below: ~pp~ [d10-analog-lines] exten => _616XXXXXXX,1,noop(${CALLERID(rdnis)}) exten => _616XXXXXXX,2,Goto(d7-analog-lines,${EXTEN:3},1) ~/pp~ |
Login |