> For the complete documentation index, see [llms.txt](https://itgro-aly.gitbook.io/test-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://itgro-aly.gitbook.io/test-docs/for-admins/click-to-call-na-neskolko-sip-klientov-s-odnim-nomerom.md).

# click to call na neskolko sip klientov s odnim nomerom

{% hint style="warning" %}
В статье идет речь о протоколе PJSIP. Данная функция не поддерживается протоколом SIP.
{% endhint %}

В данной статье приведён пример настройки диалплана Asterisk для ситуации, когда за одним внутренним номером закреплено несколько SIP-устройств. Например, это могут быть несколько физических телефонов или программных клиентов, использующих одну и ту же учётную запись. Диалплан распределяет вызов все эти устройства при инициализации звонка.<br>

В файл `/etc/asterisk/extensions_custom.conf` добавляем код ниже

{% hint style="warning" %}
Данные настройки рекомендуется проводить с администратором Asterisk, т.к. они влияют на саму телефонию, а не только на модуль интеграции Itgrix.\
\
Это **пример** настроек диалплана, разработанный на чистом тестовом сервере. В зависимости от ваших настроек и версии Asterisk, необходимый для корректной работы код может отличаться.
{% endhint %}

```
[from-crm-click2call-example]

exten => _X.,1,NoOp(CRM Click2Call to ${EXTEN})

 ; вызов на все устройства оператора (номер берём из Local/XXX@...)
 same => n,Set(CONTACTS=${PJSIP_DIAL_CONTACTS(${CUT(CUT(CHANNEL,/,2),@,1)})})
 same => n,GotoIf($["${CONTACTS}"=""]?no_contacts)

 same => n,Dial(${CONTACTS},30,g)

 ; ===== оператор ответил =====
 same => n,Set(OPERATOR=${BRIDGEPEER(pjsip,endpoint)})
 same => n,NoOp(Answered by operator ${OPERATOR})

 ; CallerID
 same => n,Set(CALLERID(num)=${OPERATOR})
 same => n,Set(CALLERID(name)=CRM-Call)

 ; Звоним клиенту
 same => n,Dial(Local/${EXTEN}@from-internal,60)

 same => n,Hangup()

exten => _X.,n(no_contacts)
 same => n,NoOp(No operator available)
 same => n,Hangup()

```

Обновляем диалплан из консоли

```
asterisk -rx 'dialplan reload'
```

В настройках модуля интеграции указываем только что созданный контекст

Сохраняем настройки

При звонке кликом из CRM инициация звонка произойдет на всех устройствах подключенных к соответствующему внутреннему номеру.
