Зачастую встречается ситуация когда звонок на внутренний номер сотрудника тем или иным способом переадресовывается на его мобильный номер. В этом случае в качестве входящего звонка будет отображаться номер АТС, а не клиента. Выход из этой ситуации состоит в отправке номера звонящего на email сотрудника.
Для этого необходимо изменить диалплан для соответствующего экстеншена.
Для FreePBX идем в /etc/asterisk/extensions_additional.conf и копируем оттуда нужный нам кусок диалплана для номера 210:
exten => 210,1,Set(__RINGTIMER=${IF($["${DB(AMPUSER/210/ringtimer)}" > "0"]?${DB(AMPUSER/210/ringtimer)}:${RINGTIMER_DEFAULT})})
exten => 210,n,Macro(exten-vm,novm,210,0,0,0)
exten => 210,n(dest),Set(__PICKUPMARK=)
exten => 210,n,GotoIf($["${IVR_CONTEXT}" != ""]?${IVR_CONTEXT},return,1)
exten => 210,hint,PJSIP/210&Custom:DND210,CustomPresence:210
Далее добавляем строчку:
exten => 210,n,System(mail -s "${CALLERID(num)}" your_mail@it-crowd.by < /dev/null)
Указываем свой email, на который будут приходить сообщения. Предварительно у вас должен быть настроен postfix.
Далее идем в extensions_override_freepbx.conf и копируем всё туда:
[ext-local]
exten => 210,1,Set(__RINGTIMER=${IF($["${DB(AMPUSER/210/ringtimer)}" > "0"]?${DB(AMPUSER/210/ringtimer)}:${RINGTIMER_DEFAULT})})
exten => 210,n,System(mail -s "${CALLERID(num)}" vityas@tut.by < /dev/null)
exten => 210,n,Macro(exten-vm,novm,210,0,0,0)
exten => 210,n(dest),Set(__PICKUPMARK=)
exten => 210,n,GotoIf($["${IVR_CONTEXT}" != ""]?${IVR_CONTEXT},return,1)
exten => 210,hint,PJSIP/210&Custom:DND210,CustomPresence:210
Выполняем dialplan reload и радуемся результату.