【问题标题】:Get freeswitch events using ZMQ使用 ZMQ 获取 freeswitch 事件
【发布时间】:2014-12-23 13:11:31
【问题描述】:

我想使用 ZMQ 从 freeswitch 获取事件。我在 freeswitch 中启用了 mod_event_socketmod_event_zmq,我正在使用以下代码接收事件,但我什么也没得到。

#include <zmq.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <assert.h>

static char * s_recv (void *socket) {
    char buffer [256];
    int size = zmq_recv (socket, buffer, 255, 0);
    if (size == -1)
        return NULL;
    if (size > 255)
        size = 255;
    buffer [size] = 0;
    return strdup (buffer);
}

int main (int argc, char *argv [])
{
    // Socket to talk to server
    void *context = zmq_ctx_new ();
    void *subscriber = zmq_socket (context, ZMQ_SUB);
    int rc = zmq_connect (subscriber, "tcp://10.50.202.169:5556");
    assert (rc == 0);

    char filter[256] = {0};
    rc = zmq_setsockopt (subscriber, ZMQ_SUBSCRIBE,
    "", 256);
    assert (rc == 0);

    // Process 100 updates
    int update_nbr;
    for (update_nbr = 0; update_nbr < 100; update_nbr++) {
        char *string = s_recv (subscriber);
        printf("%s",string);
        free (string);
    }

    zmq_close (subscriber);
    zmq_ctx_destroy (context);
    return 0;
}

我正在为 freeswitch 的这两个模块使用默认配置。

【问题讨论】:

  • 你的问题在哪里?
  • 我想问一下,为什么这个没有收到任何东西。

标签: c zeromq freeswitch


【解决方案1】:

与 FreeSWITCH 的 zmq 连接是否成功? FreeSWITCH 真的加载了mod_event_zmq 模块吗?

【讨论】:

  • 是的。 mod_event_zmq 加载成功
  • 我是否正确使用了过滤器?现在,我想得到一切。
  • 似乎没问题,但需要更深入地挖掘,可能在来源中查找。
  • 谢谢。我通过将0 作为zmq_setsockopt 的最后一个参数解决了这个问题。
猜你喜欢
  • 2015-03-19
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
相关资源
最近更新 更多