24.12.2019

Kamailio. uac_auth. cseq. t_relay fail.

чтобы увеличивать cseq нужно использовать модуль диалог.

modparam(“dialog”, “track_cseq_updates”, 1)

если вы используете в failure_route uac_auth, то учите что при несовпадении realm в запросе на авторизацию и в функции uac_auth вы получите ошибку

ERROR: {1 62503 INVITE } tm [t_fwd.c:1717]: t_forward_nonack(): no branches for forwarding
ERROR: {1 62503 INVITE } tm [tm.c:1679]: _w_t_relay_to(): t_forward_noack failed

А в 2016 был баг на эту тему в kamailio. сейчас видимо не баг.

19.12.2019

WEBRTC2SIP. KAMAILIO. RTPENGINE. CENTOS 7.

Полная статья по инсталляции webrtc2sip на centos 7 здесь. А тут видео.

В качестве основы эту статью и компиляцию вручную. В целом компиляция особых проблем не вызвала. Пакеты все которые надо ставятся.

Проблема возникла при инсталляции в качестве сервиса.

а) не стал разбираться с правами и запускаю от root,
б) необходимо убрать из rtpengine.services параметры из окружения,

Было:

ExecStart=/usr/sbin/rtpengine --config-file=${CFGFILE} --interface=${INTERFACE} --listen-ng=${LISTEN_UDP} --log-facility=${LOG_FACILITY} --log-level=${LOG_LEVEL}

Стало:

ExecStart=/usr/sbin/rtpengine --pidfile /run/rtpengine.pid --config-file /etc/rtpengine/rtpengine.conf --table 0

в) учесть имена pid файла, он должен совпадать в /etc/rtpengine/rtpengine.conf , /etc/sysconfig/rtpengine , rtpengine.service – последний файл можно найти командой systemctl status rtpengine.service.

Помощь с ошибками:

webrtc console:  Called with SDP without DTLS fingerprint. - для моей версии rtpengine, необходимо было использовать ICE=force, без этого флага rtpengine не добавлял fingerprint в SDP. возможно в новых версиях rtpengine всё уже в порядке. 

15.12.2019

FreePBX AMI Events duplicate. queue. agents.

По умолчанию, freepbx создают агентов в очереди в качестве локальных каналов local/1000-ext/n , где /n означает отключение автоматизации внутренних каналов, по этому создается по два канала в каждой очереди и видимо с обоих приходит уведомление. В общем если заполнять агентов с префиксом S например S1001,0, уведомления приходят ровно по одному на очередь как и должно быть. Всем спасибо. Я кстати не могу зарегаться на основном сайте, не показывает капчу… Тематика Астериска последнее время близка. кто знает может чем смогу помочь.

12.12.2019

callback+freepbx+AMD

Схема работы такая:

Любой разрешенный ip звонит на DID номер pbx, станция перезванивает с DID номера и соединяет с внутренним абонентом) показывая в качестве callerid номер на который осуществляется дозвон.

Особенности: минимум вмешательства в код freepbx чтобы можно было использовать весь функционал станции.

У вас уже установлена: Freepbx, callback модуль, правильно настроены callback и trunk в интерфейсе freepbx

Всё что нам нужно это добавить передачу переменной в callback модуль:

//define the args for Originate
$channel = "Local/".$callback_number."@from-internal";
$exten = $callback_exten;
$context = $callback_context;
$priority = $callback_priority;
$timeout = $callback_timeout;
$callerid = $callback_callerid;
$variable = "__MYVAR4=$callback_number";
$account = "";
$application = "";
$data = "";

затем поймать её в extension_custom.conf

[macro-dialout-one-predial-hook]
exten => s,1,set(CALLERID(all)=${MYVAR4})

[macro-AMD1]
exten => s,1,noop("Check of answering machine")
exten => s,n,background(silence/1)
exten => s,n,AMD()
exten => s,n,NoOp("AMD STATUS IS :"${AMDSTATUS}"…CAUSE:"${AMDCAUSE})
exten => s,n,Set(CDR(userfield)=${AMDSTATUS}|${AMDCAUSE})
exten => s,n,GotoIf($[${AMDSTATUS}=HUMAN]?human:mach)
exten => s,n(mach),Hangup()
exten => s,n(human),noop(This is Human continue)

How to use callback calls at freepbx

  1. Create callback application in menu. It will make you possible to send calls from callback to any registered extension \ Ring groups \ Queues \ IVR or something else.  In CallerID field you should set “${FROM_DID}” to send calls from your DID number. 
  1. Create Trunk for making outbound calls with AMD it may be any trunk but you should add “TM(AMD1)” in Dial options.
  2. Create inbound route for receive call from any IP and to specific DID number: you have example here in interface with number 55555. Choose destination as callback application created at step 1. 
  3. Create outbound route for route calls making by your freepbx (not only from callback app). You should set Dial Patterns to avoid making call to destinations that you don’t want to call. 
  4. Apply changes. That is all you need in web interface. 

4.12.2019

постоянный сетевой маршрут windows l2tp переподключение

route add -p  185.63.144.1 10.0.0.100 METRIC 1 if 31

Чтобы узнать номер интерфейса: route print