### 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:
      :<optchar1><OptParam1>:<optchar2><OptParam2>

      the ":" character is the delimiter.

      The available Optchars are:
        d - Send display text on called phone, text is the optparam
        n - don't detect dtmf tones on called channel
        h - make digital outgoing call
        c - make crypted outgoing call, param is keyindex
        e - perform echo cancellation on this channel,
            takes taps as arguments (32,64,128,256)
        s - send Non Inband DTMF as inband
        vr - rxgain control
        vt - txgain control

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})