Keywords: asterisk

### Dial and Options String

The dial string of chan_misdn got more complex, because we added more features, so the generic dial string looks like:

-     mISDN/<port>[:bchannel]|g:<group>/<extension>[/<OPTIONSSTRING>]

      The Optionsstring looks Like:
      :<optchar><optarg>:<optchar><optarg>...

      the ":" character is the delimiter.

      The available options are:
        a - Have Asterisk detect DTMF tones on called channel
        c - Make crypted outgoing call, optarg is keyindex
        d - Send display text to called phone, text is the optarg
        e - Perform echo cancelation on this channel,
            takes taps as optarg (32,64,128,256)
       e! - Disable echo cancelation on this channel
        f - Enable fax detection
        h - Make digital outgoing call
       h1 - Make HDLC mode digital outgoing call
        i - Ignore detected DTMF tones, don't signal them to Asterisk,
            they will be transported inband.
       jb - Set jitter buffer length, optarg is length
       jt - Set jitter buffer upper threshold, optarg is threshold
       jn - Disable jitter buffer
        n - Disable mISDN DSP on channel.
            Disables: echo cancel, DTMF detection, and volume control.
        p - Caller ID presentation,
            optarg is either 'allowed' or 'restricted'
        s - Send Non-inband DTMF as inband
       vr - Rx gain control, optarg is gain
       vt - Tx gain control, optarg is gain

chan_misdn registers a new dial plan application "misdn_set_opt" when loaded. This application takes the Optionsstring as argument. The Syntax is:

    misdn_set_opt(<OPTIONSSTRING>)

When you set options in the dialstring, the options are set in the external channel. When you set options with misdn_set_opt, they are set in the current incoming channel. So if you like to use static encryption, the scenario looks as follows:

    Phone1 --> * Box 1 --> PSTN_TE
    PSTN_TE --> * Box 2 --> Phone2

The encryption must be done on the PSTN sides, so the dialplan on the boxes are:

    * Box 1:
    exten => _${CRYPT_PREFIX}X.,1,Dial(mISDN/g:outbound/:c1)

    * Box 2:
    exten => ${CRYPT_MSN},1,misdn_set_opt(:c1)
    exten => ${CRYPT_MSN},2,dial(${PHONE2})