Как мне позвонить с определенного телефонного номера, используя астериск?

Как настроить сопоставление номеров для передачи звонков между двумя asterisk'ами через соединенные транки, используя префиксы 01 и 02 для обозначения каждого из них?
  • 29 января 2024 г. 12:08
Ответы на вопрос 2
Чтобы позвонить с определенного телефонного номера, используя Asterisk, вам нужно настроить вашу систему для использования исходящего Caller ID, который соответствует нужному номеру. В своём dialplan (например, в файле `/etc/asterisk/extensions.conf`) вы можете установить Caller ID для исходящего вызова перед тем, как выполнить Dial команду.

Пример настройки Caller ID в dialplan:

```ini
exten => _X.,1,NoOp(Making a call with specific Caller ID)
 same => n,Set(CALLERID(num)=1234567890) ; Установите номер, от которого вы хотите позвонить
 same => n,Dial(SIP/trunk/${EXTEN}) ; Здесь SIP/trunk - это транк, через который будет идти вызов
 same => n,Hangup
```

Теперь обсудим сопоставление номеров для передачи звонков между двумя Asterisk-ами через соединенные транки с использованием префиксов `01` и `02`.

### Конфигурация Asterisk A (предположим, используется префикс `01` для вызова на Asterisk B):

В файле `extensions.conf`:

```ini
[globals]
TRUNK_TO_B=SIP/название_транка_до_B

[место_для_вызовов]
exten => _01X.,1,Dial(${TRUNK_TO_B}/${EXTEN:2}) ; Убираем префикс и направляем вызов на B
 same => n,Hangup
```

В этом примере, когда кто-то наберет номер с префиксом `01`, этот префикс будет удален (`${EXTEN:2}`), и оставшаяся часть номера будет использована для вызова через транк на Asterisk B.

### Конфигурация Asterisk B (предположим, используется префикс `02` для вызова на Asterisk A):

В файле `extensions.conf`:

```ini
[globals]
TRUNK_TO_A=SIP/название_транка_до_A

[место_для_вызовов]
exten => _02X.,1,Dial(${TRUNK_TO_A}/${EXTEN:2}) ; Убираем префикс и направляем вызов на A
 same => n,Hangup
```

В этом примере, когда кто-то наберет номер с префиксом `02`, этот префикс будет удален (`${EXTEN:2}`), и оставшаяся часть номера будет использована для вызова через транк на Asterisk A.

Не забудьте, что вам также нужно настроить транки между Asterisk A и B в файле `sip.conf` или `pjsip.conf`, в зависимости от того, какой протокол используется в вашем случае.

Пример настройки транка в `sip.conf`:

```ini
[название_транка_до_B]
type=peer
host=ip_адрес_сервера_B
context=место_для_вызовов
qualify=yes
```

Замените `ip_адрес_сервера_B` на реальный IP-адрес или доменное имя сервера B.

После изменения конфигурации файлов, не забудьте применить изменения в Asterisk, выполнив команду `dialplan reload` в Asterisk CLI (`asterisk -rvv`) или перезагрузив всю систему командой `core restart now`.

Обратите внимание, что конкретные настройки могут незначительно отличаться в зависимости от версии Asterisk и используемых моду
Если у вас всё же куда то уходит звонок, это же хорошо. Просто значит в городских транках имеется роут с  - 01 идти в город. Как вариант.
Похожие вопросы