Commit Graph

1581 Commits

Author SHA1 Message Date
Andrey Volk f93445a38c FS-12010: [sofia-sip] Fix improper cleanup on su_deinit(). 2019-08-20 03:11:28 +04:00
Mike Jerris 090e8284b6 FS-11961: [mod_sofia] Handle request vs response in sofia_media_tech_media 2019-07-25 14:26:36 -06:00
Mariah Yang d654faa5a9 FS-11903: Fix errors reported by PVS-Studio Static Code Analyzer for mod_sofia 2019-07-18 22:22:56 +04:00
Liyang 6f9ee4216c FS-11903: [mod_sofia] fix warnV547 Expression 'sip->sip_via' is always true. 2019-07-18 21:27:10 +04:00
Brian West b23d887586 FS-11654: [core] add media_timeout, media_hold_timeout and video vs audio variants 2019-07-18 00:54:37 +04:00
Mike Jerris e7dda1b027 Revert "FS-9490: [mod_sofia] add filter to SIP messages that match a regexp."
This reverts commit 53dbe5d84a.

This previous patch made logger function not reentrant so reverting until we can get a fix without that issue
2019-07-17 22:57:55 +04:00
Chris Rienzo 681b7e28ab FS-11785 [mod_sofia] fix scan-build issues 2019-07-17 21:49:50 +04:00
Mike Jerris a9e634b664 FS-11557: [mod_sofia] add support for RFC 7989 Session-ID header
(enable with sofia profile param rfc-7989=true)

FS-11557 [mod_sofia, mod_conference, core] Add support for re-INVITE when setting Session-ID in conference after call has been answered.

FS-11557 [mod_conference] Missed a spot where APP_SESSION_ID needed to be set.

FS-11557: set session id for outbound (initial requests)

FS-11557: [mod_sofia] rename vars and functions "session id" -> "session uuid" to reflect the real meaning for rfc7989.

FS-11557: fix bug - colliding chan var names (session_id)

FS-11557: check nil session uuid

FS-11557 : replace CS_NEW with CS_INIT for when originating calls, generate new uuid.

FS-11557: handle inbound (UAS mode, one leg)

FS-11557: generic param handling and filter via new sip profile option "rfc-7989-filter", eg:
<param name="rfc-7989-filter" value="logme, sec-agree, privacy" />

FS-11557: renamed chan vars (reflect meaning only for RFC7989)

FS-11557: fallback to RFC7329 - "old" Session-ID

FS-11557: distinguish between request and replies when we read the header
(to provide compatibility with old RFC7329 - section 11 of RFC7989)
FS-11557: change more vars/consts names

FS-11557: move compat flag on the channel.

FS-11557: add Session-ID header in REFER

FS-11557: needs extra condition on received initial request

FS-11557: handle NOTIFY

FS-11557: support answer() in dialplan - it was sending back a 200 OK with Session-ID invalid, eg: A=NIL;B=X

FS-11557: add Session-ID for NOTIFY (more cases)

FS-11557: handle reply to SIP INFO (add Session-ID header)

FS-11557: handle case of BYE after REFER, when the channel is destroyed already (save the uuid on sofia_private)

FS-11557: handle more SIP reply cases (eg: 202 Accepted , more negative replies)

FS-11557: handle ACK (UAS role)

FS-11557: added "rfc-7989-force-old" profile param - to enforce old rfc7329 for the UAC role. default off.
enabled with "<param name="rfc-7989-force-old" value="true" />".

FS-11557: fallback to rfc7329 fixes.

FS-11557: set flag CF_RFC7329_COMPAT on partner channel where needed

FS-11557: fix crash (mod_conference)
2019-07-17 19:13:41 +04:00
Brian West 0c13b704fc FS-10913: [mod_sofia] do not mark pre_answer unless status is less than 200 2019-07-17 01:49:13 +04:00
Mike Jerris 8e129b913d FS-11906: [mod_sofia] fix NDLB-allow-bad-iananame profile param 2019-06-27 15:30:43 -04:00
Luis Azedo 669ea98834 FS-11825 [mod_sofia] use proper flag in blind auth 403 reply 2019-05-02 01:56:12 +01:00
Mike Jerris f4a7274195 Merge pull request #1682 in FS/freeswitch from ~LAZEDO/freeswitch:proxy-token-acl-port to master
* commit '6ceb9885d4bd10763b982255af732e3e6a8936ee':
  FS-9956 [mod_sofia] retain user lookup in blind & acl auth
  FS-11025 [mod_sofia] use ports for acl check
  FS-11025 [core] allow/check ports in network lists
  FS-10746 [mod_sofia] allow authoritative proxy to provide token
2019-03-26 17:21:02 -05:00
lazedo 6ceb9885d4 FS-9956 [mod_sofia] retain user lookup in blind & acl auth
* retains lookup to be used after caller context is created and
switch_ivr_set_user_xml is called
2019-03-26 22:16:28 +00:00
lazedo aca0798700 FS-9942 [mod_sofia] allow intercept for other channels 2019-03-26 21:16:11 +00:00
Luis Azedo 254b739b96 FS-11025 [mod_sofia] use ports for acl check
* optionally use port for acl check
* optionally lookup acl token from header
* optionally processed auth only by acl
2019-03-06 11:56:06 +00:00
Luis Azedo 46c1b4217c FS-10746 [mod_sofia] allow authoritative proxy to provide token 2019-03-06 11:55:59 +00:00
Mike Jerris e961cf72df Merge pull request #1370 in FS/freeswitch from ~LAZEDO/freeswitch:feature/FS-10598 to master
* commit '2fa6afed6fcf422575d79bf6483b5697a32acf2a':
  FS-10598: [mod_sofia] add replaces header call_id and params to channel variables
2019-02-12 15:53:00 +00:00
Luis Azedo 2fa6afed6f FS-10598: [mod_sofia] add replaces header call_id and params to channel
variables
2019-02-12 15:43:45 +00:00
Mike Jerris 1547815f58 Merge pull request #1433 in FS/freeswitch from ~LAZEDO/freeswitch:feature/FS-10745 to master
* commit 'f8335607c244ac5fea04f2ae3188e59f3284c3ca':
  FS-10745 [mod_sofia] provide more context to transferor event
2018-11-20 20:59:36 +00:00
Luis Azedo f8335607c2 FS-10745 [mod_sofia] provide more context to transferor event 2018-10-01 15:13:58 +01:00
Mike Jerris a4db3a4355 Merge pull request #1491 in FS/freeswitch from ~HUNYI/freeswitch:feature/FS-8900-improve-record_follow_transfer to master
* commit '069da397f5b9e7adb10c2c9d8d03f83d195dae37':
  Improve recording transfer
2018-09-05 22:34:38 +00:00
Anthony Minessale d3e320ef56 FS-11346: [core] add api to pass pre-parsed values instead of dial strings to switch_ivr_originate
SWITCH_DECLARE(switch_status_t) switch_dial_handle_create(switch_dial_handle_t **handle);
SWITCH_DECLARE(void) switch_dial_handle_destroy(switch_dial_handle_t **handle);
SWITCH_DECLARE(void) switch_dial_handle_add_leg_list(switch_dial_handle_t *handle, switch_dial_leg_list_t **leg_listP);
SWITCH_DECLARE(void) switch_dial_leg_list_add_leg(switch_dial_leg_list_t *parent, const char *dial_string, switch_dial_leg_t **legP);
SWITCH_DECLARE(void) switch_dial_handle_add_global_var(switch_dial_handle_t *handle, const char *var, const char *val);
SWITCH_DECLARE(void) switch_dial_handle_add_global_var_printf(switch_dial_handle_t *handle, const char *var, const char *fmt, ...);
SWITCH_DECLARE(switch_status_t) switch_dial_handle_add_leg_var(switch_dial_leg_t *leg, const char *var, const char *val);
SWITCH_DECLARE(switch_status_t) switch_dial_handle_add_leg_var_printf(switch_dial_leg_t *leg, const char *var, const char *fmt, ...);
SWITCH_DECLARE(int) switch_dial_handle_get_peers(switch_dial_handle_t *handle, int idx, char **array, int max);
SWITCH_DECLARE(int) switch_dial_handle_get_vars(switch_dial_handle_t *handle, int idx, switch_event_t **array, int max);
SWITCH_DECLARE(switch_event_t *) switch_dial_handle_get_global_vars(switch_dial_handle_t *handle);
SWITCH_DECLARE(switch_event_t *) switch_dial_leg_get_vars(switch_dial_leg_t *leg);
SWITCH_DECLARE(int) switch_dial_handle_get_total(switch_dial_handle_t *handle);
SWITCH_DECLARE(void) switch_ivr_orig_and_bridge(switch_core_session_t *session, const char *data, switch_dial_handle_t *dh);

add switch_dial_handle_t *dh to end of args for switch_ivr_originate
2018-08-22 18:20:13 +00:00
Brian West a14dcfef3d FS-10913: [mod_sofia] ignore_early_media=ring_ready not transitioning #resolve 2018-07-24 07:21:40 +00:00
Brian West 027ae79516 FS-10913: [mod_sofia] ignore_early_media=ring_ready not transitioning #resolve 2018-07-24 07:21:40 +00:00
Hunyadvári Péter 069da397f5 Improve recording transfer
Use the same method everywhere
Move the bug without stopping and starting the recording over
It was broken in some circumstances and also some settings were lost

FS-8900 --resolve
2018-03-20 09:20:37 +01:00
Stephane Alnet 159c4ce95d FS-6816 [mod_sofia] Set empty callee id if `_undef_`
In some scenarios (e.g. MetaSwitch interop) the `display` field of callee-id should be left empty instead of being overwritten with the number.
As is done in other places, we allow for `_undef_` to mean "leave the field empty".
2018-02-02 10:19:03 +01:00
Anthony Minessale 4fabca25ef FS-10792: [mod_sofia] when behind 1-to-1 NAT, console logs invalid handle #resolve 2017-11-15 13:04:15 -06:00
Hristo Trendev 9d4c26825f FS-10617: [mod_sofia] Nightmare transfer: expose remote server's channel UUIDs as variables.
Currently there is no easy way for ESL and dial plan users to easily correlate
the channel UUID of the call legs involved in a nightmare transfer. This patch
adds two new channel variables, which are set to the remote server call leg
UUIDs (transfer_refer_from, transfer_refer_for).

The UUIDs are passed from the remote server in custom headers (X-FS-Refer-From
and X-FS-Refer-For).
2017-08-28 13:38:45 +02:00
lazedo da96699c1e FS-10592: [mod_sofia] add sofia_profile_url to channel vars 2017-08-15 22:33:37 +01:00
Mike Jerris 719937ff8f Merge pull request #1306 in FS/freeswitch from ~HRISTO/freeswitch:FS-10407-set-some-redirect-channel-variables to master
* commit '1d15e411f9f5b6c8883cda47534cc1e9c3a77f95':
  FS-10407: [mod_sofia] Set redirect variables when outbound_redirect_fatal is true
2017-07-06 21:15:07 +00:00
Mike Jerris 1729eb108f FS-10439: [mod_sofia] fix small leak when receiving REFER message 2017-06-29 13:23:03 -05:00
Hristo Trendev 1d15e411f9 FS-10407: [mod_sofia] Set redirect variables when outbound_redirect_fatal is true
In case of outbound_redirect_fatal=true none of the redirect variables are
set. This makes it impossible for ESL applications to extract any information
related to the "302 Moved Temporarily" reply.
2017-06-21 09:25:23 +02:00
Mike Jerris 8afac73cd6 FS-10338: [mod_sofia] add sip_invite_stamp variable of the time we received initial invite on an inbound call leg 2017-05-23 17:07:08 -04:00
Brian West 48f6978d55 FS-10059: [sofia-sip] handle re-invites during t.38 call 2017-04-05 16:31:38 -05:00
Brian West f859a404f8 FS-10183 [mod_sofia] Broadsoft Shared line pickup would fall if a-leg is PCMU and your pickup device has G722 as its first codec. 2017-03-27 11:43:41 -05:00
Brian West 3dccd0a82f FS-10149 [freeswitch-core] ZRTP encrypted calls drop on reinvite 2017-03-21 10:09:36 -05:00
Mike Jerris 2f4c9b363e FS-10067: [mod_sofia] add update-refresher profile param and sip_update_refresher channel var to use update for session timers 2017-03-03 11:01:26 -06:00
Anthony Minessale 40bfe0fff5 FS-9154: [freeswitch-core] Add & remove video on re-invites #resolve 2017-02-15 13:56:35 -06:00
Mike Jerris e8f6ed3d93 Merge pull request #1183 in FS/freeswitch from ~SAFAROV/freeswitch2:FS-10009 to master
* commit '6c12f69e0c893646eda0bb010873583040aa136b':
  FS-10009: mod_fail2ban - Added logging of network_ip for abandoned calls
2017-02-14 13:32:05 -06:00
Armen Babikyan 6ed86abf9f FS-9300: Add support for disabling sofia's 100 Trying via configuration, and sending 100 Trying from dialplan 2017-02-13 14:49:05 -08:00
Sergey Safarov 6c12f69e0c FS-10009: mod_fail2ban - Added logging of network_ip for abandoned calls 2017-02-10 13:17:45 -05:00
Sergey Safarov df1ab07ca4 FS-9924: Removed extra space in source files 2017-02-09 23:59:49 -05:00
Mike Jerris 0c99d5062f Merge pull request #1166 in FS/freeswitch from ~ANTONIO/freeswitch:bugfix/FS-9966-invalid-contact-header-witn-private to master
* commit '8673e0177c310f6fa5b2ae42dd5562968ce00df9':
  [mod_sofia] FS-9966 fix private ip in contact header when invite w/ nosdp
2017-02-02 18:45:48 -06:00
Mike Jerris 722feefd56 FS-9970: [mod_sofia] don't detect nat in cases when the contact is in the acl, but the packet actually came from a proxy. We need to check where we got the packet from as being a natted address instead of the contact in order to properly handle nat to our next hop 2017-01-27 15:13:18 -06:00
Antonio 8673e0177c [mod_sofia] FS-9966 fix private ip in contact header when invite w/ nosdp 2017-01-24 15:11:01 +01:00
Mike Jerris 5ef273b4b3 Merge pull request #1146 in FS/freeswitch from bugfix/FS-9206-proxy-media-with-enable-3pcc-proxy to master
* commit 'a597e216bc699567ddb77d1765cf095c3bb31183':
  FS-9206: [core] endable proxy media auto-adjust on re-invite for text and video every time as the streams may be being added on re-invite
2017-01-17 13:11:30 -06:00
Mike Jerris a597e216bc FS-9206: [core] endable proxy media auto-adjust on re-invite for text and video every time as the streams may be being added on re-invite 2017-01-17 13:10:06 -06:00
Luis Azedo 52e1785d94 [mod_sofia] FS-9940 fix finding a-leg parameter 2017-01-12 08:37:18 -06:00
Mike Jerris 5d5b815e42 FS-9931: [mod_sofia] don't send display updates to endpoints who don't have UPDATE in their Allow header 2017-01-10 16:26:43 -06:00
Mike Jerris f418baf7c8 FS-9844: [mod_sofia] populate sip_full_route var with all of the route headers, not just the first one 2017-01-05 16:02:17 -06:00