Skip to end of metadata
Go to start of metadata

This section provides some frequently asked question on WRTC Gateway application, database, and the cluster configuration through EMS.

How to view WRTC Gateway Application Code?

You can view the code of sample applications to know how certain Sonus WebRTC features are implemented as a reference when developing your custom application. When the WRTC Gateway application is open in WRTC supported browsers like Chrome or Firefox, you can right click on the page and select View page source option. This will open the application source code:

Figure : Application Source Code

How to View Browser Console Logs?

The browser console logs helps application developers to view the diagnostic information in the console like request, response, errors, warnings, and also logs from application code. Every web browser has a different approach for accessing the console logs, you will have to check your browser specific approach to view the console logs. A few examples on how to view the logs in WRTC supported browsers like Chrome or Firefox are listed as follows:

Chrome

You can press F12 button on your keyboard and select Console tab. This will open the browser console:

Figure : Browser Console for Chrome

Figure : Browser Console for Firefox

I have installed WRTC server but not able to ping this server?

Ensure the WRTC instance IP address is configured in DNS server. The DNS server IP must be given in /etc/resolv.conf against the name server. Also the FQDN/IP of WRTC instance should be updated in Firewall in order to access it. Contact your IT help desk.

I have installed WRTC server but, notices some error related to the GCM service?

The following error messages appears when GCM is enabled and services are started. You can ignore the error messages.

Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.ServiceDiscoveryManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.XHTMLManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.muc.MultiUserChat
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.filetransfer.FileTransferManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.LastActivityManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.commands.AdHocCommandManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.ServiceDiscoveryManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.XHTMLManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.muc.MultiUserChat
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.filetransfer.FileTransferManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.LastActivityManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.commands.AdHocCommandManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.ServiceDiscoveryManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.XHTMLManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.muc.MultiUserChat
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.filetransfer.FileTransferManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.LastActivityManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.commands.AdHocCommandManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.ServiceDiscoveryManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.XHTMLManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.muc.MultiUserChat
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.filetransfer.FileTransferManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.LastActivityManager
Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.commands.AdHocCommandManager  

What if the WRTC application does not come up in a VMware instance?

When the WRTC application does not come up in a VMware instance, the following exception is observed:

Figure : Error Message

This exception has been observed in VMware instances due to a known issue in VMware that causes the entire file-system of the VM to become read only which prevents file writes. During WRTC application startup, a folder gets created in /tmp directory and the contents of the WRTC fat jar are copied into this folder. When the file-system becomes read only, this cannot happen preventing the WRTC application from starting. This issue can be resolved by rebooting the VM instance.

I have mentioned the WRTC server IP on the login page but, not able to login the WRTC application

After installing WRTC, If you observe the following error while log in to the WRTC application:

Figure : Error Message

You must execute the following commands to resolve the preceding error:

chmod -R 777 <nginx directory>
Restart nginx

WRTC application does not come up due to invalid SIP Listener IP

The application will not start up if the "SIPListeningIP" and "SIPFloatingIP" attributes in startup.json are not valid IP addresses corresponding to the WRTC node's IP. There will be an exception during the initialization of the SIP stack.

To resolve this issue, the values for these attributes need to be correctly updated in the startup.json and WRTC application has to be restarted.

I have installed WRTC but I am not able to launch the instance?

After installing WRTC, if you have problems launching the instance and are getting the following error:

Error: Failed to launch instance "test": Please try again later [Error: No valid host was found.]

You must reset and activate the instance by executing the following command:

 nova reset-state --active <instance Id>

How can I know that Cassandra Database is running? 

The Cassandra database will be running in when you start the WRTC instance, You can verify if Cassandra database is running after starting the WRTC node by executing the following command as WRTC user:

 

ps -eaf | grep cassandra

The command executes with the following output:

Figure : Cassandra Database Information

To start or restart Cassandra you will have to login as root user and navigate to /etc/Cassandra/ location and execute the following command:

Cassandra

The command executes with the following trace:

INFO 12:48:03 No gossip backlog; proceeding

In case the following error occurs when restarting Cassandra you must kill the existing Cassandra process and restart it again:

ERROR 13:03:44 Error starting local jmx server:
java.rmi.server.ExportException: Port already in use: 7199; nested exception is:
        java.net.BindException: Address already in use
        at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:340) ~[na:1.7.0_79]
        at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:248) ~[na:1.7.0_79]
        at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411) ~[na:1.7.0_79]
        at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147) ~[na:1.7.0_79]
        at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:207) ~[na:1.7.0_79]
        at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:123) ~[na:1.7.0_79]
        at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:99) ~[na:1.7.0_79]
        at java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:239) ~[na:1.7.0_79]
        at org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:96) [apache-cassandra-2.1.4.jar:2.1.4]
        at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:216) [apache-cassandra-2.1.4.jar:2.1.4]
        at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:533) [apache-cassandra-2.1.4.jar:2.1.4]
        at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:622) [apache-cassandra-2.1.4.jar:2.1.4]
Caused by: java.net.BindException: Address already in use
        at java.net.PlainSocketImpl.socketBind(Native Method) ~[na:1.7.0_79]
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) ~[na:1.7.0_79]
        at java.net.ServerSocket.bind(ServerSocket.java:376) ~[na:1.7.0_79]
        at java.net.ServerSocket.<init>(ServerSocket.java:237) ~[na:1.7.0_79]
        at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231) ~[na:1.7.0_79]
        at org.apache.cassandra.utils.RMIServerSocketFactoryImpl.createServerSocket(RMIServerSocketFactoryImpl.java:13) ~[apache-cassandra-2.1.4.jar:2.1.4]
        at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:666) ~[na:1.7.0_79]
        at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:329) ~[na:1.7.0_79]
        ... 11 common frames omitted

I installed and started the WRTC application, but observed DB Exception error? 

The startup.json file includes the wsxnodeip address which has to be the local IP on which the server is running. Cassandra IP address must be the loop back IP as the cass services will be running on the local db."CassandraNode":"127.0.0.1".

Where can I refer the logs?

The WRTC logs are located at the /opt/sonus/wrtc directory.

How should I configure my OAUTH server?

The OAuth credentials must be picked up from the console.developers URL to login to the profile id. For more information, see OAuth Developer Account Creation.

How to View WRTC Internals in Firefox browser?

To view the WRTC internals in Firefox browser enter the following in the browser URL field:

about:wrtc

WRTC Internals appears:

Figure : WRTC Internals

To view the internals in Chrome web browser enter the following command in browsers:

chrome://webrtc-internals
The WRTC internals appears:

Figure : WRTC Internals in Chrome

To view the WRTC internals in Opera web browser execute the following command:

opera://media-internals

Why EMS REST interface not responding when port 443 is open?

Several interfaces will share port 443, this port being open does not mean EMS REST interface has been initialized successfully. You must check the management IP address in the wrtcCloudInputs file and assign the management IP if it is not assigned and restart the LCA.

How to know that WRTC node is register successfully with EMS?

After invoking the script ./wrtcnodeinit start we can observe the state of the node as registered in the EMS. Refer to the Viewing WRTC Registered Node for more information.

Alternately, we can invoke the script ./emsRegistration.py –a register to get the following notification that the node has been registered with EMS:

[root@WRTC-192.168.2.46 wrtc]# ./emsRegistration.py -a register
emsRegistration.getParameter: EmsRegistrationId value: 10184
emsRegistration.register: sending register
emsRegistration.sendRequestAndGetResponse: code: 200
emsRegistration.replaceParameterValue: Set EmsRegistrationId to 10184 in wrtcCloudInputs
emsRegistration.py: register succeeded

You would view the following notification if the registration with EMS is not successful:

[root@WRTC-192.168.2.46 wrtc]# ./emsRegistration.py -a register
emsRegistration.getParameter: EmsRegistrationId value: 
emsRegistration.register: sending register
emsRegistration.sendRequestAndGetResponse: HTTP Error: dataIp should be unique
emsRegistration.sendRequestAndGetResponse: code: 400
emsRegistration.py: register failed. Exiting

How would I know that the cluster configured through EMS is successfully pushed to WRTC?

When the cluster configuration that is pushed to WRTC node would be available as a processed file with a specific timestamp.

-rw-r--r-- 1 wrtc wrtc    10502 Jul 21 09:05 wrtcClusterConfig.xml.processed.1437483953201
-rw-r--r-- 1 wrtc wrtc    10502 Jul 21 09:08 wrtcClusterConfig.xml.processed.1437484111241
-rw-r--r-- 1 wrtc wrtc    10465 Jul 21 09:12 wrtcClusterConfig.xml.processed.1437484381884
-rw-r--r-- 1 wrtc wrtc    10465 Jul 21 09:14 wrtcClusterConfig.xml.processed.1437484630136
-rw-r--r-- 1 wrtc wrtc    10502 Jul 21 09:19 wrtcClusterConfig.xml.processed.1437484816878
-rw-r--r-- 1 wrtc wrtc    10672 Jul 21 09:31 wrtcClusterConfig.xml.processed.1437485503127
-rw------- 1 wrtc wrtc      443 Jul 21 09:42 wrtcCloudInputs.bkp
-rw-r--r-- 1 wrtc wrtc      952 Jul 21 09:42 wrtcNodeConfig.xml
-rw-r--r-- 1 wrtc wrtc        2 Jul 21 09:42 wrtcClusterNodes.json
-rwxr--r-- 1 wrtc wrtc    22833 Jul 21 09:42 startup.json
-rwxr--r-- 1 wrtc wrtc    33948 Jul 21 09:42 cluster.xml
drwxr--r-- 2 wrtc wrtc     4096 Jul 21 09:42 certificate
-rw-r--r-- 1 wrtc wrtc    10905 Jul 21 09:42 wrtcClusterConfig.xml.processed.1437486171474
-rw-r--r-- 1 wrtc wrtc       38 Jul 21 09:42 global.data
-rw------- 1 root root      361 Jul 22 02:19 wrtcCloudInputs

If the configuration has not pushed to WRTC node successfully then the processed file with the failed message, and specific timestamp would be displayed as follows:

-rw-r--r-- 1 wrtc wrtc    10606 Jul 21 09:00 wrtcClusterConfig.xml.failed.1437483640902
-rw-r--r-- 1 wrtc wrtc    10776 Jul 21 09:02 wrtcClusterConfig.xml.failed.1437483773923

How to configure SBC with WRTC, through EMS?

Add SBC SIP Signaling IP in SIP Peer under "Globals" in WRTC data model, along with transport type and port. For more information on cluster configuration, refer to the WRTC Cluster Configuration. After configuring SBC for the first time, if WebRTC calls are failing, ensure SRTP licence is present.

Why my Web to SIP call does not reach SBC?

Check if a route for the called number is present in the routing table. Also in "Data rows for routing", ensure that the routing label is pointing to the correct SBC. For more information on cluster configuration, refer to the WRTC Cluster Configuration.

What step shall I take if I observer 503 service unavailable from SBC?

Ensure that the WRTC IP is added to the WRTC-SBC trunk group as ingress IP prefix.

What must be added in the DTLS profile of SBC when using Firefox to make Web to SIP calls?

When Firefox is used, the following cipher needs to be added in the DTLS profile in SBC -  tls_ecdhe_rsa_with_aes_128_cbc_sha.

How to check the status for ICE and DTLS profile?

To see the status of ICE and DTLS, in config mode check for the following:

-> show status global callMediaStatus
     egressMediaStream1IceState     ST_ICE_COMPLETE;
     ingressDtlsSrtpStream1         ENABLED; 

This must be successful for all media streams.

What if there is any delay in call setup?

If there is any delay in call setup, check if the STUN and TURN servers are reachable and the services are enabled.

Why is WebRTC server is not issuing registration for WebRTC logins with SIP Registration info?

This is due to one of the following reasons:

  • SIP registration of a SIP signalling profile for an enterprise must be enabled.
  • Using same email ID for third party login. Try to use a different email ID or append a digit to login with the same email ID.
  • No routes for the numbers getting allocated. I

    Figure : Route Screen

  • n the WRTC Data Model, select Globals > Route. Configure the route as:

How do I check for a specific user in the userprofile schema for an allocated number in the Cassandra DB?

Execute the following command to search for a particular user profile in the Cassandra DB:

Select * from userprofile.profiles where emailid='<user_email_ID_to_search>';

How to check all the userprofile data in Cassandra DB?

Execute the following command to check for all the user profiles from the Cassandra DB:

select * from userprofile.profiles;

How can I configure routes for SIP registration and SIP calls?

To configure routes for SIP registration and SIP calls, in the WRTC Data Model, select Globals > Route.

For SIP Calls:

Following route fields must be configured as:

Prefix: prefix of the dialed number.
Domain: called domain.
Enterprise: Name of the calling enterprise.

For SIP Registrations:

Following route fields must be configured as:

Prefix: prefix of the allocated number.
Domain: *
Enterprise: enterprise name from which the user has logged in.

How can I update the EMS patch on Unity Explorer?

First download the required file (for example, UE.V02.00.02A001.tar.gz) from SalesForce. 

To update EMS patch on Unity Explorer:

  1. Enter the following command to stop the EMS server.

    # su - insight
    # ./sonusEms stop;
  2. Copied the patch to /tmp location on the EMS server.
  3. Enter the following command to navigate to /tmp location.

    # cd /tmp
  4. Enter the following command to unzip the patch file and deploy it:

    # gunzip <file_name>.gz
    # tar -xvf <file_name>.tar
    # ./emsDeploy.sh 
  5. Enter the following command to clean-up after running deploying the patch:

    # \rm -rf /tmp/ema, /tmp/emsDeploy.sh, /tmp/uekit.tar, /tmp/model.tar
  6. Enter the following commands to navigate to the following location and start the EMS server:

    # cd /opt/sonus/ems
    #./sonusEms start;