Coder Social home page Coder Social logo

Comments (48)

gvagenas avatar gvagenas commented on July 28, 2024

@maria-farooq you can try this issue. You can join Restcomm irc to discuss this issue (see here: http://www.telestax.com/open-source/irc-channel/)

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Thanks @gvagenas,
I noticed RestComm restful APIs exist for many features; calls, sms etc,, but not for conference so i believe this task is to add conference APIs.
As RestComm Restufl APIs are very similar to Twilio's so we have to follow https://www.twilio.com/docs/api/rest/conference

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

@maria-farooq right, we need a REST API for conferences.

If you need guidance and help you can join Restcomm IRC channel so we can chat http://www.telestax.com/open-source/irc-channel/

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Hi @gvagenas ,
Just an update in ticket.
I've made changes in restcomm.http project and now i am testing them, will tell here once i have some results.

thanks
maria

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

Thanks for the update @maria-farooq

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Hi, Here is update on the ticket.
I am facing difficulty with testing API, I am having following exception when calling existing Calls API.
May be my build process is not correct.. i am compiling it with java 7
so i am troubleshooting it now.
javax.servlet.ServletException: java.lang.NoSuchMethodError: org.mobicents.servlet.restcomm.entities.CallDetailRecordFilter.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:420) com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538) com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716) javax.servlet.http.HttpServlet.service(HttpServlet.java:847) org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:380) org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

@maria-farooq Java 7 is fine.
Make sure you build the whole project before you run the testsuite.
The exception reported here should be also an error in your IDE or when you build the project.

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Hi Team,

What did i do?

Today i worked on issue and added support for following resources

  • /2010-04-01/Accounts/{AccountSid}/Conferences/{ConferenceSid}
  • /2010-04-01/Accounts/{AccountSid}/Conferences

But i used same dao for conference as we are already using for calls (CallDataRecord).

Observations:

In database, i observed, conference is logged as individual calls. (in restcomm_call_detail_records table)
I did not find any common ConferenceSid type thing which I could use to combine/relate multiple calls.

Only common thing is SIP number which every dials to connect to conference room.

Another thing which we have to do is to add support for Participants list resource which a subresource of a Conference instance resource

Again "ConferenceSid" is key grouping all participants of a Conference Call.

Solution 1:

If i am not missing anything then we might need to save ConferenceSid as well, in database.

Solution 2:

we can group calls by common SIP number which is everyone using to connect to Conference.

I will resume work on it tomorrow afternoon
Please guide me if i need to take a different track..

from restcomm-connect.

deruelle avatar deruelle commented on July 28, 2024

Thanks @maria-farooq

You can use https://www.twilio.com/docs/api/rest/conference and https://www.twilio.com/docs/api/rest/participant as a basis.

Solution 1 seems the right one to go with.

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

Maria,

Agree with Jean that solution 1 is the most appropriate one.

George

On Mon, Mar 21, 2016 at 12:11 PM, Jean Deruelle [email protected]
wrote:

Thanks @maria-farooq https://github.com/maria-farooq

You can use https://www.twilio.com/docs/api/rest/conference and
https://www.twilio.com/docs/api/rest/participant as a basis.

Solution 1 seems the right one to go with.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#5 (comment)

George Vagenas

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

thanks for feedback @deruelle @gvagenas
I will update my progress here

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Hi @gvagenas here are my changes, https://github.com/maria-farooq/Restcomm-Connect/commits/issue-5
I committed my changes so you could review my progress.
I am doing testing and restcomm.testsuit is still left to update.
Thanks,
Maria

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

@gvagenas can you help me how can i deploy restcomm.application.war

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Hi George, sorry to ping you on Saturday, in case you are already working, can you help in a case

  • Despite following instructions i was unable to deploy my changes
  • I am getting following exception
  • I am looking into it, meanwhile if you see my message, may be your help will expedite my testing
Caused by: org.hsqldb.HsqlException: error in script file line: /Users/mariafarooq/Downloads/Restcomm-JBoss-AS7-7.6.0.835/standalone/deployments/restcomm.war/WEB-INF/data/hsql/restcomm 2
    at org.hsqldb.error.Error.error(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.scriptio.ScriptReaderText.readDDL(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.scriptio.ScriptReaderBase.readAll(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.persist.Log.processScript(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.persist.Log.open(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.persist.Logger.open(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.Database.reopen(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.Database.open(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.DatabaseManager.getDatabase(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.DatabaseManager.newSession(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    ... 35 more
Caused by: org.hsqldb.HsqlException: system object cannot be modified
    at org.hsqldb.error.Error.error(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.error.Error.error(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.StatementSchema.checkSchemaUpdateAuthorisation(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.StatementSchema.setOrCheckObjectName(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.StatementSchema.getResult(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.StatementSchema.execute(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    at org.hsqldb.Session.executeCompiledStatement(Unknown Source) [hsqldb-2.3.2.jar:2.3.2]
    ... 44 more

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

meanwhile i am trying to build entire restcomm binary locally, so that i could eliminate human error in this file replacement process

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

i am able to deploy my changes.

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Hi @gvagenas i am able to generate and store conferenceSid, Lets discuss possibility of a new table in restcomm DB by the name "conference-detail-records". I will be waiting for your response and then we can discuss on skype.

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

I am preparing a short document for proposed table structure and its relation with other tables and scenarios it which it will be populated/updated. Will share it here tomorrow evening

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

What has been done so far:

Conference API

Sample output for http://IP:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences

<RestcommResponse>
    <object class="org.mobicents.servlet.restcomm.entities.ConferenceDetailRecordList">
        <Conferences page="0" numpages="0" pagesize="50" total="0"
            start="0" end="3"
            uri="/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences"
            firstpageuri="/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences?Page=0&PageSize=50"
            previouspageuri="null" nextpageuri="null"
            lastpageuri="/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences?Page=0&PageSize=50">
            <Conference>
                <Sid>CF078109d767e64378ad422716e104086d</Sid>
                <DateCreated>Tue, 10 May 2016 23:20:41 +0500</DateCreated>
                <DateUpdated>Tue, 10 May 2016 23:21:19 +0500</DateUpdated>
                <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
                <Status>RUNNING_MODERATOR_PRESENT</Status>
                <StartTime />
                <EndTime />
                <ApiVersion>2012-04-24</ApiVersion>
                <FriendlyName>ConferenceApp</FriendlyName>
                <Uri>
                    /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CF078109d767e64378ad422716e104086d
                </Uri>
                <SubresourceUris />
            </Conference>
            <Conference>
                <Sid>CF18efdb3c81c340b99016fdad50caae73</Sid>
                <DateCreated>Tue, 10 May 2016 23:21:39 +0500</DateCreated>
                <DateUpdated>Tue, 10 May 2016 23:21:58 +0500</DateUpdated>
                <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
                <Status>RUNNING_MODERATOR_PRESENT</Status>
                <StartTime />
                <EndTime />
                <ApiVersion>2012-04-24</ApiVersion>
                <FriendlyName>ConferenceApp</FriendlyName>
                <Uri>
                    /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CF18efdb3c81c340b99016fdad50caae73
                </Uri>
                <SubresourceUris />
            </Conference>
            <Conference>
                <Sid>CFb6d69ceac34c407d847558a21f57f0bc</Sid>
                <DateCreated>Tue, 10 May 2016 23:20:01 +0500</DateCreated>
                <DateUpdated>Tue, 10 May 2016 23:20:24 +0500</DateUpdated>
                <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
                <Status>RUNNING_MODERATOR_PRESENT</Status>
                <StartTime />
                <EndTime />
                <ApiVersion>2012-04-24</ApiVersion>
                <FriendlyName>ConferenceApp</FriendlyName>
                <Uri>
                    /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CFb6d69ceac34c407d847558a21f57f0bc
                </Uri>
                <SubresourceUris />
            </Conference>
        </Conferences>
    </object>
</RestcommResponse>

Sample output for http://IP:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CF078109d767e64378ad422716e104086d

<RestcommResponse>
    <object
        class="org.mobicents.servlet.restcomm.entities.ConferenceDetailRecord">
        <Conference>
            <Sid>CF078109d767e64378ad422716e104086d</Sid>
            <DateCreated>Tue, 10 May 2016 23:20:41 +0500</DateCreated>
            <DateUpdated>Tue, 10 May 2016 23:21:19 +0500</DateUpdated>
            <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
            <Status>RUNNING_MODERATOR_PRESENT</Status>
            <StartTime />
            <EndTime />
            <ApiVersion>2012-04-24</ApiVersion>
            <FriendlyName>ConferenceApp</FriendlyName>
            <Uri>
                /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CF078109d767e64378ad422716e104086d
            </Uri>
            <SubresourceUris />
        </Conference>
    </object>
</RestcommResponse>

Participants API

Sample output of http://IP:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CF078109d767e64378ad422716e104086d/Participants

<RestcommResponse>
    <Calls page="0" numpages="0" pagesize="50" total="0" start="0"
        end="5"
        uri="/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CF078109d767e64378ad422716e104086d/Participants"
        firstpageuri="/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CF078109d767e64378ad422716e104086d/Participants?Page=0&PageSize=50"
        previouspageuri="null" nextpageuri="null"
        lastpageuri="/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CF078109d767e64378ad422716e104086d/Participants?Page=0&PageSize=50">
        <Call>
            <Sid>CA516762ff78744e829a42fe27012e83ce</Sid>
            <InstanceId>ID8464c16ae8cb4336a7c75a8037d8ceb6</InstanceId>
            <DateCreated>Tue, 10 May 2016 23:20:48 +0500</DateCreated>
            <DateUpdated>Tue, 10 May 2016 23:20:54 +0500</DateUpdated>
            <ParentCallSid />
            <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
            <To>1111</To>
            <From>alice</From>
            <PhoneNumberSid />
            <Status>completed</Status>
            <StartTime>2016-05-10T23:20:48.658+05:00</StartTime>
            <EndTime>2016-05-10T23:20:54.907+05:00</EndTime>
            <Duration>6</Duration>
            <Price>0.00</Price>
            <PriceUnit>USD</PriceUnit>
            <Direction>inbound</Direction>
            <AnsweredBy />
            <ApiVersion>2012-04-24</ApiVersion>
            <ForwardedFrom />
            <CallerName>Unknown</CallerName>
            <Uri>
                /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CA516762ff78744e829a42fe27012e83ce
            </Uri>
            <SubresourceUris>
                <Notifications>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CA516762ff78744e829a42fe27012e83ce/Notifications
                </Notifications>
                <Recordings>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CA516762ff78744e829a42fe27012e83ce/Recordings
                </Recordings>
            </SubresourceUris>
            <Ring__duration />
        </Call>
        <Call>
            <Sid>CA82ad41fcf51d4f2398aefbb990116298</Sid>
            <InstanceId>ID8464c16ae8cb4336a7c75a8037d8ceb6</InstanceId>
            <DateCreated>Tue, 10 May 2016 23:20:45 +0500</DateCreated>
            <DateUpdated>Tue, 10 May 2016 23:21:21 +0500</DateUpdated>
            <ParentCallSid />
            <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
            <To>1111</To>
            <From>alice</From>
            <PhoneNumberSid />
            <Status>completed</Status>
            <StartTime>2016-05-10T23:20:45.557+05:00</StartTime>
            <EndTime>2016-05-10T23:21:21.066+05:00</EndTime>
            <Duration>35</Duration>
            <Price>0.00</Price>
            <PriceUnit>USD</PriceUnit>
            <Direction>inbound</Direction>
            <AnsweredBy />
            <ApiVersion>2012-04-24</ApiVersion>
            <ForwardedFrom />
            <CallerName>Unknown</CallerName>
            <Uri>
                /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CA82ad41fcf51d4f2398aefbb990116298
            </Uri>
            <SubresourceUris>
                <Notifications>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CA82ad41fcf51d4f2398aefbb990116298/Notifications
                </Notifications>
                <Recordings>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CA82ad41fcf51d4f2398aefbb990116298/Recordings
                </Recordings>
            </SubresourceUris>
            <Ring__duration />
        </Call>
        <Call>
            <Sid>CA92d057f6df1b48d1b983c850b7f9a99d</Sid>
            <InstanceId>ID8464c16ae8cb4336a7c75a8037d8ceb6</InstanceId>
            <DateCreated>Tue, 10 May 2016 23:20:41 +0500</DateCreated>
            <DateUpdated>Tue, 10 May 2016 23:21:10 +0500</DateUpdated>
            <ParentCallSid />
            <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
            <To>1111</To>
            <From>alice</From>
            <PhoneNumberSid />
            <Status>completed</Status>
            <StartTime>2016-05-10T23:20:41.847+05:00</StartTime>
            <EndTime>2016-05-10T23:21:10.268+05:00</EndTime>
            <Duration>28</Duration>
            <Price>0.00</Price>
            <PriceUnit>USD</PriceUnit>
            <Direction>inbound</Direction>
            <AnsweredBy />
            <ApiVersion>2012-04-24</ApiVersion>
            <ForwardedFrom />
            <CallerName>Unknown</CallerName>
            <Uri>
                /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CA92d057f6df1b48d1b983c850b7f9a99d
            </Uri>
            <SubresourceUris>
                <Notifications>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CA92d057f6df1b48d1b983c850b7f9a99d/Notifications
                </Notifications>
                <Recordings>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CA92d057f6df1b48d1b983c850b7f9a99d/Recordings
                </Recordings>
            </SubresourceUris>
            <Ring__duration />
        </Call>
        <Call>
            <Sid>CAb489d5586a834fe3bfc0fb3489f6760a</Sid>
            <InstanceId>ID8464c16ae8cb4336a7c75a8037d8ceb6</InstanceId>
            <DateCreated>Tue, 10 May 2016 23:21:15 +0500</DateCreated>
            <DateUpdated>Tue, 10 May 2016 23:21:22 +0500</DateUpdated>
            <ParentCallSid />
            <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
            <To>1111</To>
            <From>alice</From>
            <PhoneNumberSid />
            <Status>completed</Status>
            <StartTime>2016-05-10T23:21:15.743+05:00</StartTime>
            <EndTime>2016-05-10T23:21:22.669+05:00</EndTime>
            <Duration>6</Duration>
            <Price>0.00</Price>
            <PriceUnit>USD</PriceUnit>
            <Direction>inbound</Direction>
            <AnsweredBy />
            <ApiVersion>2012-04-24</ApiVersion>
            <ForwardedFrom />
            <CallerName>Unknown</CallerName>
            <Uri>
                /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CAb489d5586a834fe3bfc0fb3489f6760a
            </Uri>
            <SubresourceUris>
                <Notifications>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CAb489d5586a834fe3bfc0fb3489f6760a/Notifications
                </Notifications>
                <Recordings>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CAb489d5586a834fe3bfc0fb3489f6760a/Recordings
                </Recordings>
            </SubresourceUris>
            <Ring__duration />
        </Call>
        <Call>
            <Sid>CAde9ee02edef249de81b105f5b400c57f</Sid>
            <InstanceId>ID8464c16ae8cb4336a7c75a8037d8ceb6</InstanceId>
            <DateCreated>Tue, 10 May 2016 23:21:02 +0500</DateCreated>
            <DateUpdated>Tue, 10 May 2016 23:21:08 +0500</DateUpdated>
            <ParentCallSid />
            <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
            <To>1111</To>
            <From>alice</From>
            <PhoneNumberSid />
            <Status>completed</Status>
            <StartTime>2016-05-10T23:21:02.765+05:00</StartTime>
            <EndTime>2016-05-10T23:21:08.267+05:00</EndTime>
            <Duration>5</Duration>
            <Price>0.00</Price>
            <PriceUnit>USD</PriceUnit>
            <Direction>inbound</Direction>
            <AnsweredBy />
            <ApiVersion>2012-04-24</ApiVersion>
            <ForwardedFrom />
            <CallerName>Unknown</CallerName>
            <Uri>
                /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CAde9ee02edef249de81b105f5b400c57f
            </Uri>
            <SubresourceUris>
                <Notifications>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CAde9ee02edef249de81b105f5b400c57f/Notifications
                </Notifications>
                <Recordings>
                    /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CAde9ee02edef249de81b105f5b400c57f/Recordings
                </Recordings>
            </SubresourceUris>
            <Ring__duration />
        </Call>
    </Calls>
</RestcommResponse>

Sample output for: http://IP:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/CF078109d767e64378ad422716e104086d/Participants/CAde9ee02edef249de81b105f5b400c57f

<RestcommResponse>
    <Call>
        <Sid>CAde9ee02edef249de81b105f5b400c57f</Sid>
        <InstanceId>ID8464c16ae8cb4336a7c75a8037d8ceb6</InstanceId>
        <DateCreated>Tue, 10 May 2016 23:21:02 +0500</DateCreated>
        <DateUpdated>Tue, 10 May 2016 23:21:08 +0500</DateUpdated>
        <ParentCallSid />
        <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
        <To>1111</To>
        <From>alice</From>
        <PhoneNumberSid />
        <Status>completed</Status>
        <StartTime>2016-05-10T23:21:02.765+05:00</StartTime>
        <EndTime>2016-05-10T23:21:08.267+05:00</EndTime>
        <Duration>5</Duration>
        <Price>0.00</Price>
        <PriceUnit>USD</PriceUnit>
        <Direction>inbound</Direction>
        <AnsweredBy />
        <ApiVersion>2012-04-24</ApiVersion>
        <ForwardedFrom />
        <CallerName>Unknown</CallerName>
        <Uri>
            /2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CAde9ee02edef249de81b105f5b400c57f
        </Uri>
        <SubresourceUris>
            <Notifications>
                /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CAde9ee02edef249de81b105f5b400c57f/Notifications
            </Notifications>
            <Recordings>
                /restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls/CAde9ee02edef249de81b105f5b400c57f/Recordings
            </Recordings>
        </SubresourceUris>
        <Ring__duration />
    </Call>
</RestcommResponse>

added test data in testsuit

added basic test cases for conference

What is remaining?

  1. remove StartTime and EndTime fro conference API, as these are not in twilio conference: this is a very short one.
  2. Muted, StartConferenceOnEnter and EndConferenceOnExit are missing from participants API.
  3. remove extra attributes which are not in twilio participant
  4. add more test cases specially for participants..
  5. fix test cases for other features like total calls in CDRS (TestCallsEnpoint) are now more than expected bcz we added calls for conference.
  6. solution for "why conference never goes to completed state" discussed with @gvagenas as well.
  7. add upgrade sql script for DB related modifications
  8. ascii docs for the feature

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

Great progress @maria-farooq , well done !

I just wanted to ask, on the Participants API, why all participants (calls) have status Completed? Status should be "InProgress" there, right?

George

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Thanks @gvagenas

these are calls from "completed conference" so call status is correct.
problem is with conference status as i described in point 6 of remaining work.
I debugged the code for this issue and found a strange thing about this line, it never returns true! strange!

https://github.com/RestComm/Restcomm-Connect/pull/991/files#diff-cee815025243fd3b5f6e85364b74b49eR2287

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

@maria-farooq so one issue is that the Conference status stays at "RUNNING_MODERATOR_PRESENT" even when the Conference is over and you are investigating this one, right?

About the Participants API, I thought that we have Participants only during the Conference is running, when the Conference is done and all Participants leave the conf room, the Participants API should return empty. At that point we should check the Calls API to get the CDRs in order to check which calls were in a given Conference, right? Do I miss something?

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Conference status stays at "RUNNING_MODERATOR_PRESENT" even when the Conference is over, right?

Yes

and you are investigating this one

Well i did, found where the issue is, but not dig further to fix it.

About the Participants API, I thought that we have Participants only during the Conference is running, when the Conference is done and all Participants leave the conference room, the Participants API should return empty.

I did not understood it like this, so this is new for me, but you are right as "Participants should represents the set of calls currently connected to a particular conference.".

At that point (when all participants left the conference) we should check the Calls API to get the CDRs in order to check which calls were in a given Conference, right?

yes by adding query parameter like this:
http://IP:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Calls?conferenceSid=CFb6d69ceac34c407d847558a21f57f0bc

Do I miss something?

No, you enlighten a point which i missed.

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

Great @maria-farooq , thanks for the clarifications. You are one the right direction

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

so should i fix conference state issue and then proceed with it. what do you suggest

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

@maria-farooq yes, sounds like a good plan

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

point 2 in remaining work

Muted, StartConferenceOnEnter and EndConferenceOnExit are missing from participants API.

we will need this information persisted somewhere, can be in call_details_record table, we can add new columns in it

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

You mean the Call record in the call_details_record table should have this columns also, so the Call record has these flags?

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

These flags are needed for each participant as mentioned here
for us, "calls" are "participants"
but this information is very specific to conference calls only, for rest these columns would go null.

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

I see, ok proceed like this @maria-farooq

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Hi @gvagenas I investigated "conference state issue" further but have not found solution yet, will look into it again after work.

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

New Discovery

FinishConferencing is never called for ConferenceStateChanged

Possible Impacts?

  1. ConferenceStateChanged.State.COMPLETED is not caught which is why conference remain in old state.
  2. VoiceInterpreter wont know that conference is completed so it wont call DestroyConference and thus there is chance that some resources don't get cleaned up

Solution?

Tested and pull request created #1071

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Progress since last comment

Serial No Remaining Work Status Comments
1. solution for "why conference never goes to completed state" Done -
2. remove StartTime and EndTime from conference API Done -
3. Muted, StartConferenceOnEnter and EndConferenceOnExit are missing from participants API. Done -
4. Show empty if conference is over and remove extra attributes which are not in twilio participant Done -
5. Mute / Unmute participants inProgress my idea is to send mute/unmute message to Call actor
6. add test cases for (un)mute participants.. Pending -
7. fix test cases for other features like total calls in CDRS (TestCallsEnpoint) Pending -
8. add upgrade sql script for DB related modifications Pending -
9. ascii docs for the feature Pending -

from restcomm-connect.

deruelle avatar deruelle commented on July 28, 2024

Thanks @maria-farooq for the update.

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Hi @gvagenas,
Here are my changes for mute/unmute functionality 80178d8
But i am seeing “RTCP Packet decoding falsed” in mediaserver logs, now i am downloading wireshark to debug it further

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

@maria-farooq as I told you on gitter, If you hit a wall debugging that, update the PR or create a new PR and attach the logs for me to check
also you can check how Restcomm currently mutes/unmutes calls at VoiceInterpreter conferencing state. If you dial a conference with startConferenceOnEnter=false (1111), Restcomm will put the call in the conference and will mute it also. You can call number 1310 which will put call muted, and play music, and from a different sip client call 1311 to unmute all participants and stop music

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Problem:

code changes are in this method: https://github.com/RestComm/Restcomm-Connect/pull/991/files#diff-4edb5fb66002dc96d4ba5d2e6ac4ca33R250
When a conference is first started I try to mute one participant:
Result? call get muted.
But: i get following exception in server logs:

23:13:52,299 INFO  [org.mobicents.servlet.restcomm.mscontrol.mgcp.MmsCallController] (RestComm-akka.actor.default-dispatcher-40) ********** MmsCallController Current State: "active
23:13:52,300 INFO  [org.mobicents.servlet.restcomm.mscontrol.mgcp.MmsCallController] (RestComm-akka.actor.default-dispatcher-40) ********** MmsCallController Processing Message: "org.mobicents.servlet.restcomm.mscontrol.messages.Mute sender : class akka.actor.RepointableActorRef
23:13:52,300 INFO  [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-40)  ********** Connection Current State: open
23:13:52,301 INFO  [org.mobicents.servlet.restcomm.http.SecuredEndpoint] (http-/172.20.10.2:8080-6) $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 4.5 updateCall else $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
23:13:52,301 INFO  [org.mobicents.servlet.restcomm.http.SecuredEndpoint] (http-/172.20.10.2:8080-6) $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 6 updateCall done $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
23:13:52,301 INFO  [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-42)  ********** Connection Processing Message: org.mobicents.servlet.restcomm.mgcp.UpdateConnection
23:13:52,883 INFO  [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-39)  ********** Connection Current State: modifying
23:13:52,883 INFO  [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-39)  ********** Connection Processing Message: akka.actor.ReceiveTimeout$
23:13:52,884 INFO  [org.mobicents.servlet.restcomm.mscontrol.mgcp.MmsCallController] (RestComm-akka.actor.default-dispatcher-39) ********** MmsCallController Current State: "muting
23:13:52,885 ERROR [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-39) The media gateway failed to respond in the requested timout period.
23:13:52,885 INFO  [org.mobicents.servlet.restcomm.mscontrol.mgcp.MmsCallController] (RestComm-akka.actor.default-dispatcher-39) ********** MmsCallController Processing Message: "org.mobicents.servlet.restcomm.mgcp.ConnectionStateChanged sender : class akka.actor.LocalActorRef
23:13:52,885 INFO  [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-39)  ********** Connection Current State: closed
23:13:52,886 INFO  [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-39)  ********** Connection Processing Message: org.mobicents.servlet.restcomm.mgcp.CloseConnection
23:13:52,886 ERROR [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-39) No transition could be found from a(n) closed state to a(n) closing state.: org.mobicents.servlet.restcomm.fsm.TransitionNotFoundException: No transition could be found from a(n) closed state to a(n) closing state.
    at org.mobicents.servlet.restcomm.fsm.FiniteStateMachine.transition(FiniteStateMachine.java:60) [restcomm.commons-7.7.0-SNAPSHOT.jar:]
    at org.mobicents.servlet.restcomm.mgcp.Connection.onReceive(Connection.java:184) [restcomm.mgcp-7.7.0-SNAPSHOT.jar:]
    at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:159) [akka-actor_2.10-2.1.2.jar:]
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) [akka-actor_2.10-2.1.2.jar:]
    at akka.actor.ActorCell.invoke(ActorCell.scala:386) [akka-actor_2.10-2.1.2.jar:]
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) [akka-actor_2.10-2.1.2.jar:]
    at akka.dispatch.Mailbox.run(Mailbox.scala:212) [akka-actor_2.10-2.1.2.jar:]
    at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506) [akka-actor_2.10-2.1.2.jar:]
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262) [scala-library-2.10.1.jar:]
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975) [scala-library-2.10.1.jar:]
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478) [scala-library-2.10.1.jar:]
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) [scala-library-2.10.1.jar:]

Next step:

as guided by @gvagenas
Problem seems to be MGCP timeout, that mean Restcomm send the MGCP request to media server but there was no response from media server:

23:13:52,883 INFO  [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-39)  ********** Connection Current State: modifying
23:13:52,883 INFO  [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-39)  ********** Connection Processing Message: akka.actor.ReceiveTimeout$
23:13:52,884 INFO  [org.mobicents.servlet.restcomm.mscontrol.mgcp.MmsCallController] (RestComm-akka.actor.default-dispatcher-39) ********** MmsCallController Current State: "muting
23:13:52,885 ERROR [org.mobicents.servlet.restcomm.mgcp.Connection] (RestComm-akka.actor.default-dispatcher-39) The media gateway failed to respond in the requested timout period.

I think that the request that Restcomm created and sent to media server is wrong.
You need to check the media server logs, check $RESTCOMM_HOME/mediaserver/logs/server.log (also "screen -r mms") and also tcpdump traces. For the tcpdump traces run "tcpdump -i any -w TRACE_FILENAME.pcap"
Check the logs and tcpdump to see why the Restcomm MGCP request failed on the media server side.

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

here are media server logs:

2016-05-31 11:46:23,757 ERROR [RtcpPacket] (service-scheduler-7) Received type = 205 RTCP Packet decoding falsed. offSet = 80. Packet count = 2
2016-05-31 11:46:28,178 ERROR [RtcpPacket] (service-scheduler-4) Received type = 205 RTCP Packet decoding falsed. offSet = 80. Packet count = 2
2016-05-31 11:46:31,792 ERROR [RtcpPacket] (service-scheduler-1) Received type = 205 RTCP Packet decoding falsed. offSet = 80. Packet count = 2
2016-05-31 11:46:32,563 INFO  [MgcpTransaction] (service-scheduler-8) tx=147483691 Started, message= MDCX mobicents/bridge/[email protected]:2427, call agent = /172.20.10.2:2727
2016-05-31 11:46:32,724 WARN  [JitterBuffer] (service-scheduler-1) Buffer overflow!
2016-05-31 11:46:32,745 WARN  [JitterBuffer] (service-scheduler-6) Buffer overflow!
2016-05-31 11:46:32,764 WARN  [JitterBuffer] (service-scheduler-2) Buffer overflow!
2016-05-31 11:46:32,785 WARN  [JitterBuffer] (service-scheduler-8) Buffer overflow!
2016-05-31 11:46:32,806 WARN  [JitterBuffer] (service-scheduler-7) Buffer overflow!
2016-05-31 11:46:32,825 WARN  [JitterBuffer] (service-scheduler-4) Buffer overflow!
2016-05-31 11:46:32,846 WARN  [JitterBuffer] (service-scheduler-2) Buffer overflow!
2016-05-31 11:46:32,864 WARN  [JitterBuffer] (service-scheduler-4) Buffer overflow!
.
.
<overflow continuous for while here>
.
.
2016-05-31 11:46:41,145 WARN  [JitterBuffer] (service-scheduler-3) Buffer overflow!
2016-05-31 11:46:41,165 WARN  [JitterBuffer] (service-scheduler-7) Buffer overflow!
2016-05-31 11:46:41,186 WARN  [JitterBuffer] (service-scheduler-3) Buffer overflow!
2016-05-31 11:46:41,206 WARN  [JitterBuffer] (service-scheduler-2) Buffer overflow!
2016-05-31 11:46:41,224 WARN  [JitterBuffer] (service-scheduler-6) Buffer overflow!
2016-05-31 11:46:41,254 WARN  [JitterBuffer] (service-scheduler-8) Buffer overflow!
2016-05-31 11:46:41,265 WARN  [JitterBuffer] (service-scheduler-3) Buffer overflow!
2016-05-31 11:46:41,267 INFO  [MgcpTransaction] (scheduler-worker-6) tx=147483691 was executed normaly
2016-05-31 11:46:44,755 ERROR [RtcpPacket] (service-scheduler-7) Received type = 205 RTCP Packet decoding falsed. offSet = 80. Packet count = 2
2016-05-31 11:46:51,445 ERROR [RtcpPacket] (service-scheduler-8) Received type = 205 RTCP Packet decoding falsed. offSet = 80. Packet count = 2
2016-05-31 11:46:54,700 INFO  [Server] (scheduler-worker-3) Global hearbeat is still alive
2016-05-31 11:46:56,401 ERROR [RtcpPacket] (service-scheduler-6) Received type = 205 RTCP Packet decoding falsed. offSet = 80. Packet count = 2
2016-05-31 11:47:01,167 ERROR [RtcpPacket] (service-scheduler-1) Received type = 205 RTCP Packet decoding falsed. offSet = 80. Packet count = 2
2016-05-31 11:47:07,023 ERROR [RtcpPacket] (service-scheduler-6) Received type = 205 RTCP Packet decoding falsed. offSet = 80. Packet count = 2
2016-05-31 11:47:11,752 ERROR [RtcpPacket] (service-scheduler-2) Received type = 205 RTCP Packet decoding falsed. offSet = 80. Packet count = 2

looking into tcpdump

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

Archive.zip

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

@maria-farooq the pcap trace doesn't contain any sip traffic. Can you check again?

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

hi @gvagenas attaching fresh logs,they have confirmed sip traffic.

Archive.zip

in mediaserver log

2016-05-31 15:02:57,074 DEBUG [RtpMember] (service-scheduler-2) rtt=3755021041 - 0 - 0 = 3755021041 => 65536ms
2016-05-31 15:02:59,792 DEBUG [MgcpProvider] (service-scheduler-2) Receive  message 81 bytes length
2016-05-31 15:02:59,792 DEBUG [MgcpProvider] (service-scheduler-2) Parsing message: MDCX 147483691 mobicents/bridge/[email protected]:2427 MGCP 1.0
C:1
I:5de
M:sendonly

2016-05-31 15:02:59,792 DEBUG [MgcpProvider] (service-scheduler-2) Dispatching message
2016-05-31 15:02:59,792 INFO  [MgcpTransaction] (service-scheduler-2) tx=147483691 Started, message= MDCX mobicents/bridge/[email protected]:2427, call agent = /172.20.10.2:2727
2016-05-31 15:02:59,919 WARN  [JitterBuffer] (service-scheduler-3) Buffer overflow!
2016-05-31 15:02:59,939 WARN  [JitterBuffer] (service-scheduler-3) Buffer overflow!
2016-05-31 15:02:59,958 WARN  [JitterBuffer] (service-scheduler-2) Buffer overflow!
2016-05-31 15:02:59,979 WARN  [JitterBuffer] (service-scheduler-1) Buffer overflow!

and here onward Buffer overflow continuous

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

I tried feeding extra memory as well to mediaserver as guided by @hrosa
https://github.com/RestComm/mediaserver/blob/master/bootstrap/src/main/config/run.sh#L137

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

@maria-farooq
I can see RMS receives the MUTE request at

2016-05-31 15:02:59,792 DEBUG [MgcpProvider] (service-scheduler-2) Parsing message: MDCX 147483691 mobicents/bridge/[email protected]:2427 MGCP 1.0
C:1
I:5de
M:sendonly

and then again reports the same request but no response

2016-05-31 15:03:03,794 DEBUG [MgcpProvider] (service-scheduler-6) Parsing message: MDCX 147483691 mobicents/bridge/[email protected]:2427 MGCP 1.0
C:1
I:5de
M:sendonly

and again the same request but no response

2016-05-31 15:03:11,794 DEBUG [MgcpProvider] (service-scheduler-4) Parsing message: MDCX 147483691 mobicents/bridge/[email protected]:2427 MGCP 1.0
C:1
I:5de
M:sendonly

After this, there is nothing related to this Request and of course Restcomm will timeout this MGCP request.

There are a lot Buffer Overflow messages that I know are coming from Linphone.

In the past, I had some issues with Linphone and I would like you to make the same test with Jitsi.
Use Jitsi to make a call to a conference room and try to mute Jitsi to check if we have the same MGCP timeout.

If with Jitsi same exception happens we need to check with @hrosa

Thanks
George

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

thanks @gvagenas will test with jitsi and update here, meanwhile

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

@gvagenas @hrosa problems is faced even with jitsi

from restcomm-connect.

hrosa avatar hrosa commented on July 28, 2024

@maria-farooq please open issue on Media Server repo and link it to this one. Thank you.

from restcomm-connect.

maria-farooq avatar maria-farooq commented on July 28, 2024

@hrosa RestComm/media-core#165 created
Thanks

from restcomm-connect.

gvagenas avatar gvagenas commented on July 28, 2024

PR reviewed and merged . Great job @maria-farooq

from restcomm-connect.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.