This is a documentation for Flashphoner version 1.0.5.973
We recommend you upgrade to the last version and check the actual documentation

ISipMessageListener


Flashphoner uses this interface for monitoring and overriding sip messages between Flashphoner and PBX system:
com.flashphoner.sdk.sip.ISipMessageListener

Usage:

sip_msg_listener=com.flashphoner.app.MySipMessageListener

Default MySipMessageListener writes sip message into the log.
You can change code of this class and get access to SIP message (read and write).
This class intercepts all SIP messages: income and outcome.

See Configuring section for more info.

Examples

Just log SIP message:

public class MySipMessageListener implements ISipMessageListener {

    @Override
    public void processMessage(SIPMessage sipMessage) {
        Logger.logger.info("Message:\n" + sipMessage.toString());
    }
}

Сhanges symbol ':' to "AbCdEfGh" in CallID string for incoming messages and vice versa for outgoing.

public class ChangeCallIdListener implements ISipMessageListener {

    private final String COLON_SUNSTITUTION = "AbCdEfGh";

    @Override
    public void processMessage(SIPMessage sipMessage) {
        CallID callIdHeader = (CallID) sipMessage.getHeader(CallID.NAME);
        String callId = callIdHeader.getCallId();

        if (callId.indexOf(":") != -1) {
            callId = callId.replaceAll(":", COLON_SUNSTITUTION);
        } else if (callId.indexOf(COLON_SUNSTITUTION) != -1) {
            callId = callId.replaceAll(COLON_SUNSTITUTION, ":");
        }

        try {
            callIdHeader.setCallId(callId);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

Add custom parameter into the request line

public class AddExtensionHeaderListener implements ISipMessageListener {
    @Override
    public void processMessage(SIPMessage sipMessage) {
        if (Request.INVITE.equals(sipMessage.getCSeq().getMethod()) && (sipMessage instanceof SIPRequest)) {
            RequestLine requestLine = ((SIPRequest) sipMessage).getRequestLine();
            SipUri uri = (SipUri) requestLine.getUri();
            try {
                uri.setParameter("ConfID","1");
            } catch (ParseException e) {
                e.printStackTrace();
            }

        }

        Logger.logger.info("AddExtensionHeaderListener processMessage:\n" + sipMessage.toString());
    }
}

Add custom header to SIP message

public class MySipMessageListener implements ISipMessageListener {

    @Override
    public void processMessage(SIPMessage sipMessage) {
        Logger.logger.info("MySipMessageListener processMessage:\n" + sipMessage.toString());
      if (Request.INVITE.equals(sipMessage.getCSeq().getMethod())) {
ExtensionHeader myHeader = new ExtensionHeaderImpl("ConfID");
        try {
            myHeader.setValue("321");
        } catch (ParseException e) {
            e.printStackTrace();
        }

            sipMessage.setHeader(myHeader);
        }
    }
}
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.