Compare commits

...

3 Commits

Author SHA1 Message Date
space88man 4d0ffe4dad
Merge c41ac535b1 into 3b58ebc5f3 2025-01-21 00:17:28 +00:00
junction1153b 3b58ebc5f3
[mod_sofia] Update Polycom UA to recognize new Poly phones
We observed that the new Poly phones (formerly known as Polycom) were not getting sent a SIP UPDATE in certain circumstances (example: retrieving a parked call, and therefore, Caller ID would not show the parked caller). I renamed Polycom to Poly which will catch all Poly AND Polycom UA's. I also added Acrobits, and Ringotel to extend such functionality to those UA's. There were also other minor compatibility issues with the new Poly phones which have been resolved with tweaking the UA recognition on the code.

Co-authored-by: Joseph <junction1153@gmail.com>
2025-01-21 00:57:25 +03:00
S-P Chan c41ac535b1 RPM spec: modernize with Python 3.12 for EL8+
- since we no longer build for CentOS modernize Python to
  3.12 for EL8, EL9
2024-11-28 18:22:17 +08:00
5 changed files with 23 additions and 20 deletions

View File

@ -3,7 +3,7 @@
# spec file for package freeswitch
#
# includes module(s): freeswitch-devel freeswitch-codec-passthru-amr freeswitch-codec-passthru-amrwb freeswitch-codec-passthru-g729
# freeswitch-codec-passthru-g7231 freeswitch-lua freeswitch-mariadb freeswitch-pgsql freeswitch-perl freeswitch-python freeswitch-v8 freeswitch-signalwire
# freeswitch-codec-passthru-g7231 freeswitch-lua freeswitch-mariadb freeswitch-pgsql freeswitch-perl freeswitch-python3 freeswitch-v8 freeswitch-signalwire
# freeswitch-lan-de freeswitch-lang-en freeswitch-lang-fr freeswitch-lang-hu freeswitch-lang-ru
# and others
#
@ -943,14 +943,14 @@ BuildRequires: perl-ExtUtils-Embed
%description perl
%package python
%package python3
Summary: Python support for the FreeSWITCH open source telephony platform
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
Requires: python
BuildRequires: python-devel
Requires: python3.12
BuildRequires: python3.12-devel, python3.12-setuptools
%description python
%description python3
%if %{build_mod_v8}
%package v8
@ -1092,13 +1092,13 @@ Group: System Environment/Libraries
%description -n perl-ESL
The Perl ESL module allows for native interaction with FreeSWITCH over the event socket interface.
%package -n python-ESL
%package -n python3-ESL
Summary: The Python ESL module allows for native interaction with FreeSWITCH over the event socket interface.
Group: System Environment/Libraries
Requires: python
BuildRequires: python-devel
Requires: python3.12
BuildRequires: python3.12-devel, python3.12-setuptools
%description -n python-ESL
%description -n python3-ESL
The Python ESL module allows for native interaction with FreeSWITCH over the event socket interface.
######################################################################################################################
@ -1292,7 +1292,7 @@ FORMATS_MODULES="formats/mod_local_stream formats/mod_native_file formats/mod_op
# Embedded Languages
#
######################################################################################################################
LANGUAGES_MODULES="languages/mod_lua languages/mod_perl languages/mod_python "
LANGUAGES_MODULES="languages/mod_lua languages/mod_perl languages/mod_python3 "
%if %{build_mod_v8}
LANGUAGES_MODULES+="languages/mod_v8"
%endif
@ -1405,13 +1405,14 @@ autoreconf --force --install
--with-odbc \
--with-erlang \
--with-openssl \
--with-python3=/usr/bin/python3.12 \
%{?configure_options}
unset MODULES
%{__make}
cd libs/esl
%{__make} pymod
%{__make} py3mod
%{__make} perlmod
@ -1441,7 +1442,7 @@ cd libs/esl
#install the esl stuff
cd libs/esl
%{__make} DESTDIR=%{buildroot} pymod-install
%{__make} DESTDIR=%{buildroot} py3mod-install
%{__make} DESTDIR=%{buildroot} perlmod-install
%if %{build_py26_esl}
@ -2049,7 +2050,7 @@ fi
%{prefix}/perl/*
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/perl.conf.xml
%files python
%files python3
%{MODINSTDIR}/mod_python*.so*
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/python.conf.xml
@ -2199,7 +2200,7 @@ fi
%{perl_archlib}/ESL/Dispatch.pm
%{perl_archlib}/ESL/IVR.pm
%files -n python-ESL
%files -n python3-ESL
%attr(0644, root, bin) /usr/lib*/python*/site-packages/freeswitch.py*
%attr(0755, root, bin) /usr/lib*/python*/site-packages/_ESL.so*
%attr(0755, root, bin) /usr/lib*/python*/site-packages/ESL.py*

View File

@ -254,7 +254,7 @@ char *generate_pai_str(private_object_t *tech_pvt)
callee_number = switch_sanitize_number(switch_core_session_strdup(session, callee_number));
callee_name = switch_sanitize_number(switch_core_session_strdup(session, callee_name));
if (!zstr(callee_number) && (zstr(ua) || !switch_stristr("polycom", ua))) {
if (!zstr(callee_number) && (zstr(ua) || !switch_stristr("poly", ua))) {
callee_number = switch_core_session_sprintf(session, "sip:%s@%s", callee_number, host);
}
@ -2075,13 +2075,15 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
nua_info(tech_pvt->nh, SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)), SIPTAG_PAYLOAD_STR(message), TAG_END());
} else if (update_allowed && ua && (switch_channel_var_true(tech_pvt->channel, "update_ignore_ua") ||
switch_stristr("polycom", ua) ||
switch_stristr("poly", ua) ||
(switch_stristr("aastra", ua) && !switch_stristr("Intelligate", ua)) ||
(switch_stristr("cisco/spa50", ua) ||
switch_stristr("cisco/spa525", ua)) ||
switch_stristr("cisco/spa30", ua) ||
switch_stristr("Fanvil", ua) ||
switch_stristr("Grandstream", ua) ||
switch_stristr("Ringotel", ua) ||
switch_stristr("Groundwire", ua) ||
switch_stristr("Yealink", ua) ||
switch_stristr("Mitel", ua) ||
switch_stristr("Panasonic", ua))) {
@ -2152,7 +2154,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
SIPTAG_PAYLOAD_STR(message),
TAG_IF(!zstr(session_id_header), SIPTAG_HEADER_STR(session_id_header)),
TAG_END());
} else if (ua && switch_stristr("polycom", ua)) {
} else if (ua && switch_stristr("poly", ua)) {
snprintf(message, sizeof(message), "P-Asserted-Identity: \"%s\" <%s>", msg->string_arg, tech_pvt->caller_profile->destination_number);
nua_update(tech_pvt->nh,
NUTAG_SESSION_TIMER(tech_pvt->session_timeout),

View File

@ -10476,7 +10476,7 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
(!is_tcp && !is_tls && (zstr(network_ip) || !switch_check_network_list_ip(network_ip, profile->local_network)) &&
profile->server_rport_level >= 2 && sip->sip_user_agent &&
sip->sip_user_agent->g_string &&
(!strncasecmp(sip->sip_user_agent->g_string, "Polycom", 7) || !strncasecmp(sip->sip_user_agent->g_string, "KIRK Wireless Server", 20)))
(!strncasecmp(sip->sip_user_agent->g_string, "Poly", 4) || !strncasecmp(sip->sip_user_agent->g_string, "KIRK Wireless Server", 20)))
) {
if (sip->sip_via) {
const char *port = sip->sip_via->v_port;

View File

@ -2501,7 +2501,7 @@ static char *gen_pidf(char *user_agent, char *id, char *url, char *open, char *r
{
char *ret = NULL;
if (switch_stristr("polycom", user_agent)) {
if (switch_stristr("poly", user_agent)) {
*ct = "application/xpidf+xml";
/* If unknown/none prpid is provided, just show the user as online. */

View File

@ -1661,7 +1661,7 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu
if (!is_tcp && !is_tls && (zstr(network_ip) || !switch_check_network_list_ip(network_ip, profile->local_network)) &&
profile->server_rport_level >= 2 && sip->sip_user_agent &&
sip->sip_user_agent->g_string &&
( !strncasecmp(sip->sip_user_agent->g_string, "Polycom", 7) ||
( !strncasecmp(sip->sip_user_agent->g_string, "Poly", 4) ||
!strncasecmp(sip->sip_user_agent->g_string, "KIRK Wireless Server", 20) ||
!strncasecmp(sip->sip_user_agent->g_string, "ADTRAN_Total_Access", 19) )) {
if (sip->sip_via) {