Hold/transfer functionality and applet

2014-06-18
2014-06-20
  • Arturo Barajas
    Arturo Barajas
    2014-06-18

    Greetings, Yohann!

    I've been toying with Peers a little for an ongoing project that I have, but for this project I need to have both hold and transfer functionality. I'm by no means a Java expert, much less a SIP one, but I can find my way.

    Could you please tell me how could I implement than functionality?

    On the other topic, how do I create an applet? I see that Peers is somehow prepared for that, but I haven't found the way.

    Thanks in advance! By the way, Peers is awesome!

     
    • here is a mix of the answers to the same question (on hold and transfer)

      On Wed, Jun 18, 2014 at 11:34 PM, Arturo Barajas abarajas@users.sf.net
      wrote:

      Greetings, Yohann!

      I've been toying with Peers a little for an ongoing project that I have,
      but for this project I need to have both hold and transfer functionality.
      I'm by no means a Java expert, much less a SIP one, but I can find my way.

      Could you please tell me how could I implement than functionality?

      read peers doc if not already done: http://peers.sf.net/doc.

      call forwarding can be implemented using REFER method and Replaces header,
      as specified in RFC5589 http://tools.ietf.org/html/rfc5589.

      I think you should add a new MethodHandler called ReferHandler. This new
      method handler would have a preProcessRefer method that would populate
      headers as expected before sending this request to the transferee.

      Transfer feature can be implemented multiple ways in sip (you have blind
      transfer, supervised transfer, etc). The simplest one is using refer /
      notify methods, you probably read call flows about this method. This
      feature can be complex.

      for on hold feature, use an invite with special SDP attribute to mute sound
      in RTP session.

      someone already implemented a patch a long time ago, here is his mail:


      Dear Yohann,

      First of all, I would like to say thank you for your hard work in the Peers
      project!

      We have been developing a comlex SoftPhone application for a year or so
      using JAIN-SIP, but it had flaws we couldn't understand. We decided a week
      ago to trash the current SIP engine and switch it with yours. The
      application is much more reliable and professional this way, but there were
      some features missing (call transfer and hold-unhold function).

      I have created a "patch" to implement these functions. Although I'm a
      newbie in the SIP world I've nearly managed to do this. Blind transfer is
      working as expected, but the re-invite is kind of strange: There's an
      Asterisk server on the other side and sometimes it just responds a wrong
      attribute in the SDP body as if there wasn't any request to change the
      transfer direction (sendonly, sendrecv, inactive). Maybe you could help me
      with this matter and hopefully you could use my code for the project as
      well.

      Please find the JAVA files attached in a TAR.GZ compressed file.
      InviteHandler required some external code, because I couldn't find out
      another way to check if it's an invite is a normal invite or a re-invite. I
      hope I didn't forget any unnecessary code or Hungarian comment in it :).

      Kind regards,

      and the corresponding patch:

      peers-patch.tar.gz
      https://docs.google.com/file/d/0B-s3oQGmkUroTWVKR2lTZkZPMGlJZUJLRERud05hRnhIY1NN/edit?usp=drive_web

      Hold feature is easy to implement (you should start with this one. You just
      have to look for attributes sendonly or recvonly in SDP and avoid the setup
      of the corresponding objects to send or receive media (incomingRtpReader or
      captureRtpSender in MediaManager).

      On the other topic, how do I create an applet? I see that Peers is somehow

      prepared for that, but I haven't found the way.

      take a look at peers-js or peers-jws in peers source code, you can even
      download a zip file containing a full example here:

      http://sourceforge.net/projects/peers/files/peers/0.5/
      http://sourceforge.net/projects/peers/files/peers/0.5/

      more details in doc

      Thanks in advance! By the way, Peers is awesome!

      Hold/transfer functionality and applet
      https://sourceforge.net/p/peers/discussion/683023/thread/9ad8cdcf/?limit=25#a2f2


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/peers/discussion/683023/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/