Чтобы настроить звонок через Asterisk на городской номер с последующим донабором внутреннего номера, нужно учитывать правильный синтаксис для отправки DTMF-тонов, а также настройки вашей конфигурации.
1. **Настройка конфигурации Asterisk**:
Чтобы настроить правильный процесс дозвона на городской номер и затем ввод внутреннего номера, нужно будет использовать правильный формат и параметры в вашем dialplan (обычно это файл `extensions.conf`).
2. **Формат набора номера**:
Динамическое применение DTMF-тонов может быть выполнено с помощью специального синтаксиса. Например, вы можете использовать `w` для задержки перед отправкой DTMF, но учтите, что количество `w` зависит от времени ожидания, необходимого для соединения.
Пример:
```plaintext
exten => _X.,1,Dial(SIP/98499XXXXX#wwwwwwwwww6XXX#)
```
В этом случае `w` создает паузу между набором номера и внутреннего номера. Попробуйте увеличить количество `w`, чтобы подождать больше времени перед донабором.
3. **Использование DTMF**:
В случаях, когда звонок сбрасывается после набора номера, возможно, проблема в методе передачи DTMF. Убедитесь, что на стороне расширения используются правильные настройки по передаче DTMF (например, типом DTMF может быть RFC2833, INBAND и т.д.). Это может быть настроено в конфигурации SIP (например, в `sip.conf`):
```ini
dtmfmode=rfc4733
```
4. **Пример полного конфигурационного блока**:
В `extensions.conf` может быть такой пример:
```plaintext
[outgoing]
exten => _X.,1,Dial(SIP/${EXTEN})
exten => _X.,n,Wait(2) ; Ждем 2 секунды после соединения
exten => _X.,n,SendDTMF(6XXX#) ; Донабираем внутренний номер
```
5. **Тестирование**:
После изменения конфигураций, не забудьте перезагрузить Asterisk и протестировать ваше решение.
```bash
asterisk -rx "core reload"
```
Если указанные действия не решают проблему, рекомендую проверить логи Asterisk (`/var/log/asterisk/full`) для просмотра более детальной информации о процессе звонка и возможных ошибках.