# Click-to-call на несколько SIP клиентов с одним номером

{% 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'
```

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

<figure><img src="/files/WieRg6tpOZ24yG07rshW" alt=""><figcaption></figcaption></figure>

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.itgrix.ru/for-admins/click-to-call-na-neskolko-sip-klientov-s-odnim-nomerom.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
