Uploaded image for project: 'FreeSWITCH'
  1. FreeSWITCH
  2. FS-9846

Bugs related with Hold and Proxy Hold option added in FS-9192 after merges in 1.6.11

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.6.11
    • Fix Version/s: 1.8
    • Component/s: mod_sofia
    • Security Level: public
    • Labels:
      None
    • Environment:
      Linux mz-debian8 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) x86_64 GNU/Linux
    • CPU Architecture:
      x86-64
    • Kernel:
      Linux
    • Userland:
      GNU/Linux
    • Distribution:
      Debian
    • Distribution Version:
      Debian 8 jessie
    • Compiler:
      gcc
    • FreeSWITCH GIT Revision:
      FreeSWITCH Version 1.9.0+git~20161209T225321Z~6522572104~64bit (git 6522572 2016-12-09 22:53:21Z 64bit)
    • GIT Master Revision hash::
      FreeSWITCH Version 1.9.0+git~20161209T225321Z~6522572104~64bit (git 6522572 2016-12-09 22:53:21Z 64bit)

      Description

      Following issues were found in Sofia Hold and Proxy Hold: -
      Session lock is ignored during proxy hold invite response should be sent after received from partner channel

      During Proxy hold invite is sent without sdp; causing hold to drop the call

      Proxy hold doesnt play the music on hold media and it assumes that re-invite will always unhold the call

      Receiving sip response with sendonly or recvonly changes subsequent sip request causing one-way voice

        Activity

        Hide
        brian Brian West added a comment -
        Can you provide the configuration and test cases using sipp so I can replicate the issue in the lab?
        Show
        brian Brian West added a comment - Can you provide the configuration and test cases using sipp so I can replicate the issue in the lab?
        Hide
        mzaka Muhammad Zaka added a comment - - edited
        Unfortunately, I cannot provide you with the test case using sipp as I had done those changes to fix the issues mentioned in the Proxy Hold functionality.
        Recently merged one of the pull request I have opted to add this request.

        Please find the details of changes that I have done and tested them.
        Session lock is ignored during proxy hold invite response should be sent after received from partner channel
        switch_core_session_rwunlock(other_session) statement was missed

        During Proxy hold invite is sent without sdp; causing hold to drop the call
        if (sofia_use_soa(tech_pvt)) statement case was missed

        Proxy hold doesn't play the music on hold media and it assumes that re-invite will always unhold the call
        The hold_related variable logic was wrong and need correction especially when a re-invite is received when the call is on-hold it breaks the logic catastrophically
        Removing CF_LEG_HOLDING tests in the files switch_ivr_bridge and switch_core_media were causing the received RTP stream with different SSRC (with Music-On-Hold) not written into RTP stream for the partner session.

        Receiving sip response with sendonly or recvonly changes subsequent sip request causing one-way voice
        else if (sendonly) {
          a_engine->smode = sdp_media_flow(sdp_sendonly);
        } else if (recvonly) {
          a_engine->smode = sdp_media_flow(sdp_recvonly);
        The above logic when handling the received SIP response message will result in one way voice as SIP request smode shouldn't change on SIP response
        Show
        mzaka Muhammad Zaka added a comment - - edited Unfortunately, I cannot provide you with the test case using sipp as I had done those changes to fix the issues mentioned in the Proxy Hold functionality. Recently merged one of the pull request I have opted to add this request. Please find the details of changes that I have done and tested them. Session lock is ignored during proxy hold invite response should be sent after received from partner channel switch_core_session_rwunlock(other_session) statement was missed During Proxy hold invite is sent without sdp; causing hold to drop the call if (sofia_use_soa(tech_pvt)) statement case was missed Proxy hold doesn't play the music on hold media and it assumes that re-invite will always unhold the call The hold_related variable logic was wrong and need correction especially when a re-invite is received when the call is on-hold it breaks the logic catastrophically Removing CF_LEG_HOLDING tests in the files switch_ivr_bridge and switch_core_media were causing the received RTP stream with different SSRC (with Music-On-Hold) not written into RTP stream for the partner session. Receiving sip response with sendonly or recvonly changes subsequent sip request causing one-way voice else if (sendonly) {   a_engine->smode = sdp_media_flow(sdp_sendonly); } else if (recvonly) {   a_engine->smode = sdp_media_flow(sdp_recvonly); The above logic when handling the received SIP response message will result in one way voice as SIP request smode shouldn't change on SIP response

          People

          • Assignee:
            mikej Mike Jerris
            Reporter:
            mzaka Muhammad Zaka
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development