Hi Jonathan,
Please revert the prev patch and try this new one - hopefully it will
fix the crash.
Thanks and regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 06.11.2016 18:50, Jonathan Hunter wrote:
Hi Bogdan,
Sorry for the delay.
I installed directly via make install, not via packages.
Jon
------------------------------------------------------------------------
*From:* Bogdan-Andrei Iancu <[email protected]>
*Sent:* 03 November 2016 10:39
*To:* Jonathan Hunter; OpenSIPS users mailling list
*Subject:* Re: [OpenSIPS-Users] opensips 2.1 call_center queue position
Hi Jonathan,
Have you installed OpenSIPS via packages ? or directly via "make
install" ?
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
Home — OpenSIPS Solutions <http://www.opensips-solutions.com/>
www.opensips-solutions.com
OpenSIPS is a mature Open Source implementation of a SIP server.
OpenSIPS is more than a SIP proxy/router as it includes
application-level functionalities.
On 02.11.2016 11:33, Jonathan Hunter wrote:
Hi Bogdan,
I am getting the core dumps, but containing no symbol tables, so I
presume I need to recompile with debug flags enabled?
Core was generated by `/usr/local/sbin/opensips -P
/var/run/opensips.pid'.
Program terminated with signal 11, Segmentation fault.
#0 0x00000000004ed7fb in ?? ()
"/core.24882" is a core file.
Please specify an executable to debug.
(gdb) bt full
#0 0x00000000004ed7fb in ?? ()
No symbol table info available.
#1 0x00007f6af7604468 in ?? ()
No symbol table info available.
#2 0x000000000000001a in ?? ()
No symbol table info available.
#3 0x0000000000000000 in ?? ()
No symbol table info available.
I installed 2.1 from sources, so whats the best way to do this?
thanks
Jon
------------------------------------------------------------------------
*From:* Bogdan-Andrei Iancu <[email protected]>
*Sent:* 02 November 2016 08:09
*To:* Jonathan Hunter; OpenSIPS users mailling list
*Subject:* Re: [OpenSIPS-Users] opensips 2.1 call_center queue position
For sure it is a patch issue. if you have a backtrace, it will useful.
Thanks,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
Home — OpenSIPS Solutions <http://www.opensips-solutions.com/>
www.opensips-solutions.com
OpenSIPS is a mature Open Source implementation of a SIP server.
OpenSIPS is more than a SIP proxy/router as it includes
application-level functionalities.
On 02.11.2016 09:56, Jonathan Hunter wrote:
Hi Bogdan,
Thanks very much for this.
I have just applied patch (installed from sources so when to
call_center module directory and ran patch < call_center_pos.patch)
then did a recompile.
However when I now route to the call center (cc_handle_call) it
generates a core and kills opensips;
!!!!user 2000 has Callqueue set so send to Call Queue Route
Nov 2 07:53:42 HPBXProxy1-beta /sbin/opensips[21141]:
NOTICE:core:io_wait_loop_epoll: EPOLLIN(read) event: epollwait() set
event EPOLLHUP - connection closed by the remote peer!
Nov 2 07:53:42 HPBXProxy1-beta /sbin/opensips[21141]:
CRITICAL:core:receive_fd: EOF on 19
Nov 2 07:53:42 HPBXProxy1-beta /sbin/opensips[21112]:
INFO:core:handle_sigs: child process 21119 exited by a signal 11
Nov 2 07:53:42 HPBXProxy1-beta /sbin/opensips[21112]:
INFO:core:handle_sigs: core was generated
Nov 2 07:53:42 HPBXProxy1-beta /sbin/opensips[21112]:
INFO:core:handle_sigs: terminating due to SIGCHLD
Do you need me to backtrace/debug through to get the issue? Or is
problem how I applied patch?
Many thanks
Jon
------------------------------------------------------------------------
*From:* Bogdan-Andrei Iancu <[email protected]>
*Sent:* 01 November 2016 21:44
*To:* Jonathan Hunter; OpenSIPS users mailling list
*Subject:* Re: [OpenSIPS-Users] opensips 2.1 call_center queue position
Hi Jonathan,
Please give it a try to this patch - it is not really tested, but
when the call is sent the Queue announcement, it should have a
";cc_pos=xxx" parameter giving the position is the queue (0 being
the first to be dispatched to agents).
Let me know if it works.
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
Home — OpenSIPS Solutions <http://www.opensips-solutions.com/>
www.opensips-solutions.com
OpenSIPS is a mature Open Source implementation of a SIP server.
OpenSIPS is more than a SIP proxy/router as it includes
application-level functionalities.
On 28.10.2016 15:59, Jonathan Hunter wrote:
Hi Bogdan,
Great news, really do appreciate that.
Many thanks
Jon
------------------------------------------------------------------------
*From:* Bogdan-Andrei Iancu <[email protected]>
*Sent:* 28 October 2016 12:48
*To:* Jonathan Hunter; OpenSIPS users mailling list
*Subject:* Re: [OpenSIPS-Users] opensips 2.1 call_center queue
position
Hi Jonathan,
No, it is no yet available. Give me couple of days and I will make
a patch for it.
Best regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
Home — OpenSIPS Solutions <http://www.opensips-solutions.com/>
www.opensips-solutions.com
OpenSIPS is a mature Open Source implementation of a SIP server.
OpenSIPS is more than a SIP proxy/router as it includes
application-level functionalities.
On 25.10.2016 19:22, Jonathan Hunter wrote:
Hi Bogdan,
Sorry cant recall If I replied to this.
Is cc_pos available now to extract from the module?
Thats the only thing I need then I can implement call center which
I think will be much more scale-able than the other approach I am
using with FreeSWITCH, I would use that just for announcements.
Any response/help appreciated.
Jon
------------------------------------------------------------------------
*From:* Bogdan-Andrei Iancu <[email protected]>
*Sent:* 13 October 2016 10:59
*To:* Jonathan Hunter; OpenSIPS users mailling list
*Subject:* Re: [OpenSIPS-Users] opensips 2.1 call_center queue
position
Hi Jonathan,
No, currently this is not possible. I was trying to envision a
solution for your need.
But, checking the code, it is really difficult to add the headers
to the INVITEs originated by OpenSIPS (via the B2BUA), as we need
some flexibility (different headers to different INVITEs belonging
to the same B2B scenario , and even more, we need to traverse
couple of internal APIs - to propagate the hdrs from Call center
module all the way to TM).
So, a simpler approach may be to add such extra info as URI params
to the RURI. Like if you have the RURI
"sip:[email protected]:5060" for the queue/waiting playback, the
RURI in the INVITE to the media server will look like :
sip:[email protected]:5060;cc_eta=40;cc_pos=10 - cc_eta being the
estimated time to wait in seconds and cc_pos the position in the
queue.
What do you think of this ?
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 12.10.2016 17:21, Jonathan Hunter wrote:
Hi Bogdan,
Yes being able to grab the queue position would be perfect.
Is that possible?
Thanks
Jon
------------------------------------------------------------------------
Subject: Re: [OpenSIPS-Users] opensips 2.1 call_center queue position
To: [email protected]; [email protected]
From: [email protected]
Date: Wed, 12 Oct 2016 15:42:43 +0300
Hi Jonathan,
When a call is mapped to a flow / queue (before playing the
welcome message), we know the ETA (estimated time to wait) and
when is placed in the queue (before playing the queuing) we
internally know the position in the queue.
Would it help to have the position in the queue placed into a
custome SIP header, when sending the INVITE to the message_queue
URL ? or to the welcome message ?
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 12.10.2016 12:06, Jonathan Hunter wrote:
Hello Bogdan,
Thanks for the response.
In terms of my question, with a number of queuing platforms,
they have the capability to tell the caller, what position
they are in , and when they are likely to be answered.
I just wondered if this logic was already within the module,
or if I would need to use an external code/script to
facilitate this function?
As I presume call_center tracks the number of calls currently
in a queue ? I would then want to be able to extract that
information, and if a caller was for example in 3rd place in
a queue, I could inject the relevant audio from freeswitch to
tell them their current position?
Does that make sense? :) Just wanted to know if its
something this module can do?
Thanks
Jon
------------------------------------------------------------------------
Subject: Re: [OpenSIPS-Users] opensips 2.1 call_center queue
position
To: [email protected]
<mailto:[email protected]>; [email protected]
<mailto:[email protected]>
From: [email protected] <mailto:[email protected]>
Date: Wed, 12 Oct 2016 11:23:45 +0300
Hello Jon,
The message_queue is a SIP URI pointing to an audio
announcement to play to roll of the waiting/in-queue
playback. This needs to be an announcements that never ends
(from the perspective of the media server); only the the
OpenSIPS Queue may terminate the playback, when it decides to
take out the call from waiting and to deliver it to an agent.
As for your question, I'm not sure I understand what you mean
by "inject a message with queue position for the caller in
question" - could you detail please ?
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 11.10.2016 13:36, Jonathan Hunter wrote:
Hi guys,
I have implemented an opensips/freeswitch environment,
and I wish to add call queues to it, and I like the look
of call_center, so just checking this out in comparison
to mod_callcenter in FS world.
My main question is if using the call_center module if
you can inject a message with queue position for the
caller in question, as I cant see that in documentation,
I only see message_queue which I assume could be used to
report the callers position, but just wondered if anyone
has done this and if they could give me some tips as to
if possible?
Many thanks
Jon
_______________________________________________
Users mailing list
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
diff --git a/modules/call_center/cc_data.c b/modules/call_center/cc_data.c
index 45112e8..fba0618 100755
--- a/modules/call_center/cc_data.c
+++ b/modules/call_center/cc_data.c
@@ -915,7 +915,7 @@ void print_queue(struct cc_data *data)
}
-void cc_queue_push_call(struct cc_data *data, struct cc_call *call, int top)
+int cc_queue_push_call(struct cc_data *data, struct cc_call *call, int top)
{
struct cc_call *call_it;
int n = 0;
@@ -971,6 +971,8 @@ void cc_queue_push_call(struct cc_data *data, struct cc_call *call, int top)
if (call->queue_start==0)
call->queue_start = get_ticks();
+
+ return n;
}
diff --git a/modules/call_center/cc_data.h b/modules/call_center/cc_data.h
index e2cf62c..14ebf37 100755
--- a/modules/call_center/cc_data.h
+++ b/modules/call_center/cc_data.h
@@ -227,7 +227,7 @@ void clean_cc_old_data(struct cc_data *data);
void clean_cc_unref_data(struct cc_data *data);
-void cc_queue_push_call(struct cc_data *data, struct cc_call *call, int top);
+int cc_queue_push_call(struct cc_data *data, struct cc_call *call, int top);
struct cc_call *cc_queue_pop_call_for_agent(struct cc_data *data,
struct cc_agent *agent);
diff --git a/modules/call_center/cc_queue.c b/modules/call_center/cc_queue.c
index 757bcf3..3956eb4 100644
--- a/modules/call_center/cc_queue.c
+++ b/modules/call_center/cc_queue.c
@@ -24,6 +24,7 @@
* 2014-03-17 initial version (bogdan)
*/
+#include "../../ut.h"
#include "cc_queue.h"
extern stat_var *stg_terminated_calls;
@@ -40,6 +41,7 @@ int cc_call_state_machine(struct cc_data *data, struct cc_call *call,
struct cc_agent *agent;
str *out = NULL;
int state =0;
+ int pos = -1;
switch (call->state) {
case CC_CALL_NONE:
@@ -81,7 +83,7 @@ int cc_call_state_machine(struct cc_data *data, struct cc_call *call,
break;
}
/* add it to queue */
- cc_queue_push_call( data, call, 0);
+ pos = cc_queue_push_call( data, call, 0);
}
break;
case CC_CALL_TOAGENT:
@@ -94,10 +96,20 @@ int cc_call_state_machine(struct cc_data *data, struct cc_call *call,
}
if (out) {
- leg->s = (char*)pkg_malloc( out->len );
+ int l=0;
+ char *s;
+ if (pos>=0)
+ s=int2str((unsigned long)pos, &l);
+ leg->s = (char*)pkg_malloc( out->len + ((pos<0)?0:(8+l)) );
if (leg->s) {
leg->len = out->len;
memcpy(leg->s,out->s,out->len);
+ if (pos>=0) {
+ memcpy(leg->s+leg->len, ";cc_pos=",8);
+ leg->len += 8;
+ memcpy(leg->s+leg->len, s, l);
+ leg->len += l;
+ }
call->prev_state = call->state;
call->state = state;
return 0;
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users