在 Ubuntu Server 18.04 上配置 Asterisk 13.18.3(来自存储库)。
sip.conf
[general]
externaddr=xxx.xxx.xxx.xxx ; Внешний IP-адрес
language=ru ; Локализация звуков
context=default
allowguest=no ; Разрешить/Запретить гостевые подключения
alwaysauthreject=yes ; Разрешить/Запретить отвечать на INVITE и REGISTER
allowoverlap=no ; Разрешить/Запретить набор по одной цифре
limitonpeers=yes ; Разрешить/Запретить лимит на кол-во одновременных разговоров
srvlookup=yes ; Принимать SIP вызовы на основании доменных имен
useragent=Asterisk JAKONDA ; Значение поля useragent в SIP заголовке
; Блок регистраций транков
register=zadarma_login:zadarma_pass@sip.zadarma.com/7499xxxxxxx ; Тестовый номер
[authentication]
[internal_numbers](!) ; Шаблон для ВНУТРЕННИХ НОМЕРОВ
type=friend ; peer(Исходящие) и user(Входящие) в одном
context=internal-calls ; Контекст обработки входящих вызовов
host=dynamic
nat=no ; Политики работы через nat
qualify=yes ; Переодическая проверка доступности клиента
canreinvite=no ; Разрешить/Запретить потоки peer-to-peer в обход сервера
insecure=port,invite ; port (не требовать совпадения порта), invite (не требовать аутентификации)
dtmfmode=rfc2833 ; Какую спецификацию использовать при передачи DTMF сигналов
disallow=all ; Запретить использование всех кодеков, ниже разрешаем нужные
allow=alaw
allow=g729
[101](internal_numbers)
fromuser=101
secret=password
; Zadarma
[zadarma](!)
type=friend
host=sip.zadarma.com
qualify=yes
fromdomain=sip.zadarma.com
insecure=invite,port
dtmfmode=rfc2833
disallow=all
allow=alaw
allow=ulaw
allow=g729
; ============================== Транки =============================
[7499xxxxxxx](zadarma) ; Тестовый номер
username=zadarma_login
fromuser=zadarma_login
secret=zadarma_pass
context=test-calls
extensions.conf
[general]
static=yes
writeprotect=no
[globals]
[default]
[test-calls]
exten => 7499xxxxxxx,1,NoOp()
exten => 7499xxxxxxx,n,Answer()
exten => 7499xxxxxxx,n,Verbose(1,Звонок на линию "Тест" с номера ${CALLERID(num)})
exten => 7499xxxxxxx,n,Dial(SIP/101)
exten => 7499xxxxxxx,n,Hangup()
一个 3CXPhone 6 在号码 101 处连接到 Asterisk。当您拨打 7499xxxxxxx 时,呼叫进入软电话,但显示来电号码 101。Asterisk 控制台中的所有内容都正确显示:“Call to the Test line from 7920xxxxxxx”。
如何确保软件中的数字显示正确?