⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 my_iax_wrapper.h

📁 我自己根据kiax改写的iax协议软终端
💻 H
字号:
#ifndef MY_IAX_WRAPPER_H#define MY_IAX_WRAPPER_H#include <qobject.h>#include <qvariant.h>#include <qpixmap.h>#include <qapplication.h>#include "iaxclient.h"#include <qevent.h>#include <qmutex.h>#include <qapplication.h>#include <qtimer.h>#include "My_IAX_Event.h"#include <stdarg.h>#include <stdlib.h>int iaxc_callback(iaxc_event e);class My_IAX_Wrapper: public QObject{Q_OBJECTpublic:    My_IAX_Wrapper(QObject *parent = 0);    ~My_IAX_Wrapper();public slots:// A global callback function used by libiaxclient  virtual void hold_call(int callNo);  virtual void resume_call(int callNo);  virtual void interrupt_call();  virtual void reject_call(int callNo);  virtual void select_call(int callNumber);  virtual void transfer_call(int callNo, QString number);  virtual void send_dtmf(char digit);  virtual void ring(); // called by the timer  virtual void startRing();  virtual void stopRing();    /* Initialization routines */  virtual bool init_iax_client();  // called from main win constructor  virtual void start_iax_client();  // starts iaxclient thread  virtual void stop_iax_client();  // stops iaxclient thread  virtual int registerAccount(QString ServerAccName,QString ServerPasswd ,QString ServerHst); // register account  virtual int unregisterAccount(int iaxRegistrationId); // unregister account  //virtual void registerMultipleAccounts();   //需要改写  virtual void configureCall(int accountNumber);  virtual void shutdown_iax_client(); // called from ~My_IAX_Wrapper  virtual iaxc_sound* initTone(int F1, int F2, int Dur, int Len, int Repeat);  virtual void debugStatistics(int callNo, int callInterval);  void dial(QString accountId,QString ServerPassword,QString ServerHst, QString contactName);   virtual void answer_call(int callNumber);public:    // KiaxAccount* getAccountByRegistrationId(int regId);   /* override eventHandling to receive events   	from non-GUI Threads   */  virtual void customEvent(QEvent * event); //修改为QEvent  int getSelectedCall();  QString getIaxClientVersion();    /* Event Handling Routines */  void handleIaxCEvent(iaxc_event e); // event callback  void event_level(float in, float out); // monitors video and audio signal levels  void event_registration(int id, int reply, int msgcount);// monitors registration status  void event_state(int callNo, int state, char *remote, char *remote_name, char *local, char *local_context, int reg_id);  void event_text(int type, char *message);  void event_unknown(int type);    // KiaxPrefs * getSettings(); // KiaxCallRecord* createCallRecord(QString accountId, QString name, QString number, bool outgoing);     // void debug(const char* log, ...);  void setShowStats(bool flag);  bool getShowStats();protected slots:  void callDuration();    public:      bool registered;     // to be sure we have a person who can receive calls  QMap<int, int> callSession; //map callNo to callRecord  QMutex callSessionMutex;  int iaxRegistrationId;signals:    /* Signals to notify the GUI */    /* Wrapper events */  //void signalCalling(QString callerId, QString callerStatus); //used only for ringing out  void signalCalling(int callNumber, QString callerStatus); //used only for ringing out  void signalAnsweredCall(int callNo);  void signalHoldCall(int callNo);  void signalResumedCall(int callNo);  void signalRegistered();  void signalUnregistered();     /*Callback events */  void signalLevels(int inValue, int outValue, int threshold ); // audio and mic levels  void signalOutgoingRinging(int callNo,QString remoteExten); // ringing status of the tab created by singalCalling()  void signalIncomingRinging(int callNo,QString remoteExten); // create tab and set status rining  void signalComplete(int callNo); // call established, ready to speak  void signalInactive(int callNo); // inactive call - hangup, forwarded to signalHangup(QString)  void signalTextMessage(int id, int status); // inactive call - hangup, forwarded to   signalHangup(QString)  void signalRegistrationAccepted();  void signalRegistrationRejected();  void signalRegistrationTimeout();  //void signalUnregistrationRequested(KiaxAccount* account);  void signalRegistrationRequested( int iaxRegistrationId);  //void signalRegistrationAccepted(KiaxAccount* account);  //void signalRegistrationRejected(KiaxAccount* account);  //void signalRegistrationTimeout(KiaxAccount* account);  void signalTextMessage(QString message);  void signalDebug(const char * error);    void callTime(int callNo, int hours, int minutes, int seconds); // inform about the time of the call - every second  void fatalError(QString message);    private:  /* Lower level libiaxclient routines */  void fatal_error(char *err);  uint getCodecMaskFromName(QString codecName); private:    struct iaxc_sound* ringInTone;  struct iaxc_sound* ringOutTone;  QTimer* ringTimer;  QTimer* callDurationTimer;  int * rtt;  iaxc_netstat * localNetstat;  iaxc_netstat * remoteNetstat;  bool showStats;  char* iaxc_ver;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -