40
40
IAXCall::~IAXCall()
42
_session = NULL; // just to be sure to don't have unknown pointer, do not delete it!
42
_session = NULL; // just to be sure to don't have unknown pointer, do not delete it!
46
46
IAXCall::setFormat (int format)
50
_info ("IAX set supported format: ");
56
setAudioCodec (PAYLOAD_CODEC_ULAW);
61
setAudioCodec (PAYLOAD_CODEC_GSM);
66
setAudioCodec (PAYLOAD_CODEC_ALAW);
71
setAudioCodec (PAYLOAD_CODEC_ILBC_20);
74
case AST_FORMAT_SPEEX:
76
setAudioCodec (PAYLOAD_CODEC_SPEEX_8000);
80
_info ("Error audio codec type %i not supported!", format);
81
setAudioCodec ( (AudioCodecType) -1);
50
_info ("IAX set supported format: ");
56
setAudioCodec (PAYLOAD_CODEC_ULAW);
61
setAudioCodec (PAYLOAD_CODEC_GSM);
66
setAudioCodec (PAYLOAD_CODEC_ALAW);
71
setAudioCodec (PAYLOAD_CODEC_ILBC_20);
74
case AST_FORMAT_SPEEX:
76
setAudioCodec (PAYLOAD_CODEC_SPEEX_8000);
80
_info ("Error audio codec type %i not supported!", format);
81
setAudioCodec ( (AudioCodecType) -1);
88
88
IAXCall::getSupportedFormat (std::string accountID)
95
_info ("IAX get supported format: ");
97
account = Manager::instance().getAccount (accountID);
98
if (account != NULL) {
99
map = account->getActiveCodecs();
102
_error ("No IAx account could be found");
105
for (iter=0 ; iter < map.size() ; iter++) {
108
case PAYLOAD_CODEC_ULAW:
110
format |= AST_FORMAT_ULAW;
113
case PAYLOAD_CODEC_GSM:
115
format |= AST_FORMAT_GSM;
118
case PAYLOAD_CODEC_ALAW:
120
format |= AST_FORMAT_ALAW;
123
case PAYLOAD_CODEC_ILBC_20:
125
format |= AST_FORMAT_ILBC;
128
case PAYLOAD_CODEC_SPEEX_8000:
130
format |= AST_FORMAT_SPEEX;
95
_info ("IAX get supported format: ");
97
account = Manager::instance().getAccount (accountID);
99
if (account != NULL) {
100
map = account->getActiveCodecs();
102
_error ("No IAx account could be found");
105
for (iter=0 ; iter < map.size() ; iter++) {
108
case PAYLOAD_CODEC_ULAW:
110
format |= AST_FORMAT_ULAW;
113
case PAYLOAD_CODEC_GSM:
115
format |= AST_FORMAT_GSM;
118
case PAYLOAD_CODEC_ALAW:
120
format |= AST_FORMAT_ALAW;
123
case PAYLOAD_CODEC_ILBC_20:
125
format |= AST_FORMAT_ILBC;
128
case PAYLOAD_CODEC_SPEEX_8000:
130
format |= AST_FORMAT_SPEEX;
142
int IAXCall::getFirstMatchingFormat (int needles, std::string accountID) {
149
_debug ("IAX get first matching codec: ");
151
account = Manager::instance().getAccount (accountID);
152
if (account != NULL) {
153
map = account->getActiveCodecs();
156
_error ("No IAx account could be found");
159
for (iter=0 ; iter < map.size() ; iter++) {
162
case PAYLOAD_CODEC_ULAW:
164
format = AST_FORMAT_ULAW;
167
case PAYLOAD_CODEC_GSM:
169
format = AST_FORMAT_GSM;
172
case PAYLOAD_CODEC_ALAW:
174
format = AST_FORMAT_ALAW;
177
case PAYLOAD_CODEC_ILBC_20:
179
format = AST_FORMAT_ILBC;
182
case PAYLOAD_CODEC_SPEEX_8000:
184
format = AST_FORMAT_SPEEX;
191
// Return the first that matches
192
if (format & needles)
142
int IAXCall::getFirstMatchingFormat (int needles, std::string accountID)
150
_debug ("IAX get first matching codec: ");
152
account = Manager::instance().getAccount (accountID);
154
if (account != NULL) {
155
map = account->getActiveCodecs();
157
_error ("No IAx account could be found");
160
for (iter=0 ; iter < map.size() ; iter++) {
163
case PAYLOAD_CODEC_ULAW:
165
format = AST_FORMAT_ULAW;
168
case PAYLOAD_CODEC_GSM:
170
format = AST_FORMAT_GSM;
173
case PAYLOAD_CODEC_ALAW:
175
format = AST_FORMAT_ALAW;
178
case PAYLOAD_CODEC_ILBC_20:
180
format = AST_FORMAT_ILBC;
183
case PAYLOAD_CODEC_SPEEX_8000:
185
format = AST_FORMAT_SPEEX;
192
// Return the first that matches
193
if (format & needles)
200
201
CodecDescriptor& IAXCall::getCodecMap()
205
206
AudioCodecType IAXCall::getAudioCodec()