# Исходящий с набором внутреннего номера

Допустим есть некий номер **8-495-000-00-00**, позвонив на который и набрав добавочный можно попасть на конкретного сотрудника. Это бывает крайне удобно, особенно если добавочный номер длиннее 3х символов. Далее опишем пример реализации задачи.

1. Для решения задачи следует описать дополнительные контексты через меню [Кастомизация системных файлов](https://docs.mikopbx.com/mikopbx/manual/system/custom-files).

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FZirBtbBRs38TiZDSWYBz%2F13.png?alt=media&#x26;token=6600bda4-2263-404b-9df4-908e83e540d6" alt=""><figcaption><p>меню <a href="../../manual/system/custom-files">Кастомизация системных файлов</a>.</p></figcaption></figure>

2. Править будем файл **extensions.conf**.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FAAbrwIprIAvrTRTCcRLU%2F14.png?alt=media&#x26;token=5acb112d-19f3-4a73-a0cc-3b850f516f0c" alt=""><figcaption><p>Правка файла "<strong>extensions.conf"</strong></p></figcaption></figure>

3. Добавьте в конец файла следующий текст:

   ```php
   [z-outgoing]
   exten => _X!,1,Ringing()
     same => n,Gosub(${ISTRANSFER}dial,${EXTEN},1)
     same => n,Dial(PJSIP/${EXTEN}@${ZPROVIDERID},600,${DOPTIONS}TKU(z-dial-answer)b(dial_create_chan,s,1))
     same => n,ExecIf($["${ISTRANSFER}x" != "x"]?Gosub(${ISTRANSFER}dial_hangup,${EXTEN},1))
     same => n,Set(pt1c_UNIQUEID=${EMPTY_VALUE})
     same => n,ExecIf($["${BLINDTRANSFER}x" != "x"]?AGI(check_redirect.php,${BLINDTRANSFER}))
     same => n,Hangup()

   [z-dial-answer]
   exten => s,1,NoOp(Answered send DTMF...)
     same => n,Gosub(dial_answer,${EXTEN},1)
     same => n,SendDTMF(${ZDTMF})
     same => n,return
   ```

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F7ITG3M2DOlp5qtiG2lzC%2Fnew1.png?alt=media&#x26;token=c7034f11-3b09-42bb-8c55-7d3777127054" alt=""><figcaption><p>Добавление кода в конец файла файл "<strong>extensions.conf"</strong></p></figcaption></figure>

4. Далее необходимо описать [Приложения диалпланов](https://docs.mikopbx.com/mikopbx/manual/modules/dialplan-applications)

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F3FOGtj42pGZv0fpBSWXy%2F16.png?alt=media&#x26;token=72866a15-1c82-4c76-a22b-f4aaf164fcba" alt=""><figcaption><p>Создание нового <a href="../../manual/modules/dialplan-applications">Приложения диалпланов</a></p></figcaption></figure>

5. Выберите «**Тип кода**» - «**Диалплан Asterisk**»

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FdaAL3dSUDP5xwjLKzyt2%2F17.png?alt=media&#x26;token=c9fbd8dd-ac9d-4e05-8384-47352773a875" alt=""><figcaption><p>Указание типа кода Диалплана</p></figcaption></figure>

6. Допустим «донабрать» нужно номер **3542331**, установим это значение в «**Номер для вызова приложения**»

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FkB7Ro3pXHPZ2l8k1XMDD%2F18.png?alt=media&#x26;token=3a1cedf9-464d-4533-902a-7fb7b51a1a02" alt=""><figcaption><p>Указание номера "донабора" для вызова приложения </p></figcaption></figure>

7. Перейдите во вкладку "Программный код" Вставьте шаблон:

```php
1,Set(_ZDTMF=${EXTEN})
n,Set(_ZDST=84950000000)
n,Set(_ZPROVIDERID=SIP-1601534775)
n,Goto(z-outgoing,${ZDST},1)
```

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F0SCagyZFWAkGRGUHbZud%2F19.png?alt=media&#x26;token=b05ef589-1bd0-42ef-9c31-aaff4f03d57c" alt=""><figcaption><p>Вставка шаблона во вкладку "Программный код" </p></figcaption></figure>

* Если в поле «**Номер для вызова приложения**» указать шаблон **9XXXX**, то станет возможно «донабрать» любые пятизначные номера, начинающиеся с цифры «**9**»
* В приложении переменной «**ZDST**» присвойте номер, на который следует совершить вызов
* В переменной «**ZDTMF**» следует указать номер для дополнительного набора
* В переменной «**ZPROVIDERID**» укажите идентификатор провайдера, через которого следует совершить исходящий вызов. ID можно подсмотреть в адресной строке браузера при редактировании провайдера
