Настроил связку Asterisk 15 + PJSIP + TLS + SRTP.
Идея в том что бы клиент мог задавать настройки безопасности на своей стороне. То есть, хочет использовать TLS+SRTP включает, не хочет - не включает. С регистрацией проблем нет, и исходящие звонки тоже отлично работают. Есть проблема с входящими звонками. Сервер в INVITE присылает
Если включить media_encryption_optimistic=yes, то присылает и соответственно софтфон с SRTP отбивает звонок
m=audio 18564 RTP/AVP
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:V3uqHJ6BZHh9fqM14Y5lRQ3fvAznKbVMruquJisl
Ответ
415 Unsupported Media Type
Если выключить media_encryption_optimistic=no, то получаем, что софтфон без шифрование перестает принимать звонки.
m=audio 18564 RTP/SAVP
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:V3uqHJ6BZHh9fqM14Y5lRQ3fvAznKbVMruquJisl
Как это счастье можно разрулить?
exten = 1111,1,Verbose(1, "User ${CALLERID(num)} dialed ${EXTEN}.") same = n,Set(DNUM=1111)
same = n,Dial(${PJSIP_DIAL_CONTACTS(${DNUM})}${INTERNAL_DIAL_OPT})
same = n,Hangup(17)
[1111](endpoint-nat)
auth = 1111
aors = 1111
force_avp=yes
media_encryption=sdes
media_use_received_transport=yes
callerid = Test User <1111>
context = Dial-Users
dtmf_mode=rfc4733
force_rport=yes
ice_support=yes
rewrite_contact=yes