Все вхождения строки «SIP-TRUNK-A2DDBADA» замените на ID своего провайдера. Его можно найти в адресной строке браузера при редактировании учетной записи провайдера в веб-интерфейсе MikoPBX.
Вместо «<sip:${OUTGOING_CID}@127.0.0.1>» следует задать требуемое значение заголовков
Формат ID провайдера зависит от версии MikoPBX: в актуальных версиях это SIP-TRUNK-XXXX, в старых — SIP-PROVIDER-XXXX или SIP-XXXX. Поэтому провайдер в примере не вычисляется из имени контекста, а берется из переменной ${PROVIDER_ID}, которую MikoPBX устанавливает перед вызовом контекста. В версиях до 2024.1.114 этой переменной нет — замените ${PROVIDER_ID} на ID провайдера явно.
При использовании модуля «Группы пользователей»:
Особенность этого варианта в том, что значение «OUTGOING_CID» будет браться из настроек групп пользователей. Для каждой группы можно назначить свое значение исходящего callerid. К примеру провайдер Westcall таким образом позволяет управлять значением callerid, который видит клиент.
Last updated
Was this helpful?
Was this helpful?
[SIP-TRUNK-A2DDBADA-outgoing-custom]
exten => _X!,1,Dial(PJSIP/${number}@${PROVIDER_ID},600,${DOPTIONS}TKU(dial_answer)b(dial_create_chan_${PROVIDER_ID}_custom,s,1))
same => n,ExecIf($["${DIALSTATUS}" = "ANSWER"]?Hangup())
same => n,ExecIf($["${DIALSTATUS}" = "BUSY"]?Busy(2))
same => n,return
[dial_create_chan_SIP-TRUNK-A2DDBADA_custom]
exten => s,1,Gosub(lua_${ISTRANSFER}dial_create_chan,${EXTEN},1)
same => n,Set(pt1c_is_dst=1)
same => n,Set(OUTGOING_CID=74952293042)
same => n,ExecIf($["${OUTGOING_CID}x" != "x"]?Set(PJSIP_HEADER(add,P-Preferred-Identity)=<sip:${OUTGOING_CID}@127.0.0.1>))
same => n,ExecIf($["${OUTGOING_CID}x" != "x"]?Set(PJSIP_HEADER(add,Remote-Party-ID)=<sip:${OUTGOING_CID}@127.0.0.1>))
same => n,Set(__PT1C_SIP_HEADER=${UNDEFINED})
same => n,Set(CHANNEL(hangup_handler_wipe)=hangup_handler,s,1)
same => n,return
[SIP-TRUNK-A2DDBADA-outgoing-ug-custom]
exten => _X!,1,Dial(PJSIP/${number}@${PROVIDER_ID},600,${DOPTIONS}TKU(dial_answer)b(dial_create_chan_custom,s,1))
same => n,ExecIf($["${DIALSTATUS}" = "ANSWER"]?Hangup())
same => n,ExecIf($["${DIALSTATUS}" = "BUSY"]?Busy(2))
same => n,return
[dial_create_chan_custom]
exten => s,1,Gosub(lua_${ISTRANSFER}dial_create_chan,${EXTEN},1)
same => n,Set(pt1c_is_dst=1)
same => n,Set(GR_VARS=${DB(UsersGroups/${FROM_PEER})})
same => n,Set(tmpName=${CUT(GR_VARS,\,,2)})
same => n,Set(tmpName=${CUT(tmpName,\_,3)})
same => n,ExecIf($["${GR_VARS}x" != "x"]?Exec(Set(${GR_VARS})))
same => n,ExecIf($["${GR_PERM_ENABLE}" == "1" && "${GR_ID_${tmpName}}" != "1"]?return)
same => n,ExecIf($["${GR_PERM_ENABLE}" == "1" && "${GR_CID_${tmpName}}x" != "x"]?MSet(GR_OLD_CALLERID=${CALLERID(num)},OUTGOING_CID=${GR_CID_${tmpName}}))
same => n,ExecIf($["${OUTGOING_CID}x" != "x"]?Set(PJSIP_HEADER(add,P-Preferred-Identity)=<sip:${OUTGOING_CID}@127.0.0.1>))
same => n,ExecIf($["${OUTGOING_CID}x" != "x"]?Set(PJSIP_HEADER(add,Remote-Party-ID)=<sip:${OUTGOING_CID}@127.0.0.1>))
same => n,Set(__PT1C_SIP_HEADER=${UNDEFINED})
same => n,Set(CHANNEL(hangup_handler_wipe)=hangup_handler,s,1)
same => n,return