Opened 4 months ago

Closed 4 months ago

#437 closed баг (fixed)

Не формировать PAI/RPID при отсутствии callerID

Reported by: alx Owned by: alx
Priority: средний Milestone: 2 очередь
Component: any Keywords:
Cc:

Description (last modified by alx)

Обнаружено, что некоторые канальные окончания, например R2DTMF, при отсутствии callerID (например номер вызывающего не определился процедурой АОН) формирует и передает в третий аргумент функции ua_dial_out() (from) свои собственные отображаемое имя и URI. В свою очередь, ua_dial_out() устанавливает это значение как identity для данного вызова и помещает их в PAI/RPID (в зависимости от настроек), что выглядит неправильно, так как на самое деле мы не знаем, кто вызывает.

Предлагается добавить в ua_dial_out() проверку аргумента from на пустую строку, и если он пустой, не использовать. Во всех канальных окончаниях, если вызывающий абонент неизвестен, передавать пустую строку в аргумент from ua_dial_out().

Схожая тема: в эту же функцию передается параметр proxy, который формируется одинаковым кодом при каждом вызове:

getProxy().empty() ? "" : std::string("<sip:") + getProxy() + ";lr>"

то есть конфигурационный параметр proxy проверяется на пустую строку, и если не пустая, формируется соответствующая строка Route:. Предлагается переместить этот код в саму ua_dial_out().

Также в некоторых канальных окончаниях, которые способны определять имя вызывающего (например FXO), при определении только номера, но без имени, передается имя канального окончания вместо имени вызывающего абонента, что тоже неправильно - предлагается в таком случае передавать ID без имени (только номер).

Change History (4)

comment:1 by alx, 4 months ago

Description: modified (diff)

Добавил предложение по аргументу proxy.

comment:2 by alx, 4 months ago

In 2423/sip_ua:

В ua_dial_out() вместо номера таймслота передается указатель на SIPChannel.
Параметр from теперь можно передавать пустым - это означает, что caller-ID
отсутствует, вызывающий неизвестен, и заголовки PAI/RPID не добавляются.
See #437.

comment:3 by alx, 4 months ago

см. r2430 - больше не передаем прокси в ua_dial_out().

comment:4 by alx, 4 months ago

Resolution: fixed
Status: newclosed

In 2437/sip_ua:

Функции ua_dial_out() передается caller_id если он есть
или пустая строка если caller ID неизвестен.
Во всех канальных окончаниях собственное оторажаемое имя
больше не используется при формировании caller ID.
Closes #437.

Note: See TracTickets for help on using tickets.