Releases: 2600hz/kazoo
3.19.23
Kazoo Changes
Changes to 3.19 after version 3.19.22
Resolved Tickets
Major (1)
- KAZOO-3250 As a sysadmin, I'd like the callflow app callflow submodule not to allow a call to be transferred to another callflow if the call is hungup
Normal (1)
- KAZOO-3352 As a front-end developer, I want the back-end to let me set a prepend feature on a phone number document, so that I can build the SmartPBX prepend feature easily
Change Details
KAZOO-3250
Summary:
As a sysadmin, I'd like the callflow app callflow submodule not to allow a call to be transferred to another callflow if the call is hungup
Description:
To prevent loops, I'd like it if the callflow module in the callflow app (the action in the UI which lets you transfer calls to another callflow) to not actually process the request if the current channel is not active.
Reporter:
Darren Schreiber <[email protected]>
KAZOO-3352
Summary:
As a front-end developer, I want the back-end to let me set a prepend feature on a phone number document, so that I can build the SmartPBX prepend feature easily
Description:
Acceptance Criteria:
- The PUT/POST API on /phone_numbers allow developers to set a prepend key ({ ..., prepend: { name: 'JR', enabled: true }, .... } (In theory that should already work and don't need any change on the back-end?)
- If the prepend key is set and if the enabled key is set to true, then the /phone_numbers view, should add the "prepend" value to the "features" array.
UI Ticket matching this back-end ticket is UI-1219
Reporter:
Jean-Roch Maitre <[email protected]>
3.19.22
Kazoo Changes
Changes to 3.19 after version 3.19.21
Resolved Tickets
Major (1)
- KAZOO-3360 Workaround for commas not functioning expectedly in conferences when auto answer is set
Change Details
KAZOO-3360
Summary:
Workaround for commas not functioning expectedly in conferences when auto answer is set
Description:
Workaround for commas not functioning expectedly in conferences w/ auto-answer
,"{alert_info=intercom}[sip_auto_answer=true]"
Reporter:
Darren Schreiber <[email protected]>
3.19.21
Kazoo Changes
Changes to 3.19 after version 3.19.20
Resolved Tickets
Major (1)
- KAZOO-3250 As a sysadmin, I'd like the callflow app callflow submodule not to allow a call to be transferred to another callflow if the call is hungup
Normal (4)
- KAZOO-3353 As a front-end dev, I want to be able to set a key with an array of emails on a voicemail box, so that I can notify multiple persons when this voicemail box receives a message
- KAZOO-3352 As a front-end developer, I want the back-end to let me set a prepend feature on a phone number document, so that I can build the SmartPBX prepend feature easily
- KAZOO-3307 omnipresence notifies
- KAZOO-3270 The preview API copies the default notification to the current account if it doesn't exist.
Change Details
KAZOO-3250
Summary:
As a sysadmin, I'd like the callflow app callflow submodule not to allow a call to be transferred to another callflow if the call is hungup
Description:
To prevent loops, I'd like it if the callflow module in the callflow app (the action in the UI which lets you transfer calls to another callflow) to not actually process the request if the current channel is not active.
Reporter:
Darren Schreiber <[email protected]>
KAZOO-3353
Summary:
As a front-end dev, I want to be able to set a key with an array of emails on a voicemail box, so that I can notify multiple persons when this voicemail box receives a message
Description:
Acceptance Criteria:
- The Voicemail box document now validates a new key that is an array of string like : ['[email protected]', '[email protected]'], name it how you/Karl want it, it's supposed to be a list of addresses that will be notified whenever a voicemail is received on this vmbox. It is very important to still get the e-mail from the owner of the vmbox and notify him as well (but you don't have to add it to the array)
- If one of the e-mail fails to be sent, then the overall process should be considered as a failure
Reporter:
Jean-Roch Maitre <[email protected]>
KAZOO-3352
Summary:
As a front-end developer, I want the back-end to let me set a prepend feature on a phone number document, so that I can build the SmartPBX prepend feature easily
Description:
Acceptance Criteria:
- The PUT/POST API on /phone_numbers allow developers to set a prepend key ({ ..., prepend: { name: 'JR', enabled: true }, .... } (In theory that should already work and don't need any change on the back-end?)
- If the prepend key is set and if the enabled key is set to true, then the /phone_numbers view, should add the "prepend" value to the "features" array.
UI Ticket matching this back-end ticket is UI-1219
Reporter:
Jean-Roch Maitre <[email protected]>
KAZOO-3307
Summary:
omnipresence notifies
Description:
with the addition of force_dummy_dialog parameter to kamailio there is no longer the need to notify kamailio on initial subscribe.
also, kamailio does not honor the send_fast_notify parameter on re-subscribes, therefore omnipresence should not send the notify to avoid duplicate notifies
Reporter:
Luis Azedo <[email protected]>
KAZOO-3270
Summary:
The preview API copies the default notification to the current account if it doesn't exist.
Description:
When sending a preview API request on a notification that is not present on the current account, the default notification is automatically copied to the current account.
Is that an intended behavior? Is it necessary?
If yes, then the UI needs to be re-worked, as it can be confusing for the end user.
Note: this happens whether the API sends back an error (500) or a success (200). See KAZOO-3267 & KAZOO-3269 for more info.
Reporter:
Maxime Roux <[email protected]>
Maintenance/Community Commits
3.19.20
Kazoo Changes
Changes to 3.19 after version 3.19.19
Resolved Tickets
Normal (1)
- KAZOO-3248 Speex audio codec not found error
Change Details
KAZOO-3248
Summary:
Speex audio codec not found error
Description:
When I try to add the "Speex" codec, I see a weird enum error in Monster UI. JR told me it's because "Speex" (not the ones with the frequency attached like speex@16000 or speex@32000) is missing from the schema enum.
Reporter:
Richard Hurlock <[email protected]>
3.19.19
Kazoo Changes
Changes to 3.19 after version 3.19.18
Resolved Tickets
Normal (1)
- KAZOO-3248 Speex audio codec not found error
Change Details
KAZOO-3248
Summary:
Speex audio codec not found error
Description:
When I try to add the "Speex" codec, I see a weird enum error in Monster UI. JR told me it's because "Speex" (not the ones with the frequency attached like speex@16000 or speex@32000) is missing from the schema enum.
Reporter:
Richard Hurlock <[email protected]>
3.19.18
Kazoo Changes
Changes to 3.19 after version 3.19.17
Resolved Tickets
Blocker (1)
- KAZOO-3332 Amount charged by topup seems to be wrong
Normal (2)
- KAZOO-3292 As a dev, I want the backend to update the media document when we do a recording over the phone, so that I can know what is the real source of the media
- KAZOO-3269 The preview API on "voicemail_full" returns a 200, but no e-mail is sent
Change Details
KAZOO-3332
Summary:
Amount charged by topup seems to be wrong
Description:
Reporter:
Peter Defebvre <[email protected]>
KAZOO-3292
Summary:
As a dev, I want the backend to update the media document when we do a recording over the phone, so that I can know what is the real source of the media
Description:
When recording a menu greeting over the phone, the media document has the "media_source" set to "recording", and a relevant "description".
However, it seems to set those only on a newly created media.
If update said media with text to speech, the "media_source" is set to "tts" and the description to "<Text to Speech>". If you record a greeting message after that, the message is properly replaced, but the "media_source" and "description" are not.
Reporter:
Maxime Roux <[email protected]>
KAZOO-3269
Summary:
The preview API on "voicemail_full" returns a 200, but no e-mail is sent
Description:
request id: 3d6a8674eb44a6b3455b5c59ecf48733
Reporter:
Maxime Roux <[email protected]>
Maintenance/Community Commits
- Peter Defebvre Fix for pull request
3.19.17
Kazoo Changes
Changes to 3.19 after version 3.19.16
Resolved Tickets
Major (1)
- KAZOO-3255 When a user_id and a hotdesk are chained in the same request
Normal (2)
- KAZOO-3330 When calling to voicemail with a device that has a mixed case username BLF subscriptions to that username are not updated
- KAZOO-3307 omnipresence notifies
Change Details
KAZOO-3255
Summary:
When a user_id and a hotdesk are chained in the same request
Description:
As a sample:
Reporter:
Darren Schreiber <[email protected]>
KAZOO-3330
Summary:
When calling to voicemail with a device that has a mixed case username BLF subscriptions to that username are not updated
Description:
If a device is subscribed to a mixed case username the phone will indicate for the channel creation but not for answer or destroy. Registrar is setting a presence ID with a lower-case username which results in subsequent events using a converted username.
Reporter:
Karl Anderson <[email protected]>
KAZOO-3307
Summary:
omnipresence notifies
Description:
with the addition of force_dummy_dialog parameter to kamailio there is no longer the need to notify kamailio on initial subscribe.
also, kamailio does not honor the send_fast_notify parameter on re-subscribes, therefore omnipresence should not send the notify to avoid duplicate notifies
Reporter:
Luis Azedo <[email protected]>
Maintenance/Community Commits
- Luis Azedo/karl anderson kamailio 4.2 changes
- James Aimonetti 3.19: fix JSON schema
3.18.57
Kazoo Changes
Changes to 3.18 after version 3.18.56
Resolved Tickets
Major (1)
- KAZOO-3255 When a user_id and a hotdesk are chained in the same request
Normal (1)
- KAZOO-3330 When calling to voicemail with a device that has a mixed case username BLF subscriptions to that username are not updated
Change Details
KAZOO-3255
Summary:
When a user_id and a hotdesk are chained in the same request
Description:
As a sample:
Reporter:
Darren Schreiber <[email protected]>
KAZOO-3330
Summary:
When calling to voicemail with a device that has a mixed case username BLF subscriptions to that username are not updated
Description:
If a device is subscribed to a mixed case username the phone will indicate for the channel creation but not for answer or destroy. Registrar is setting a presence ID with a lower-case username which results in subsequent events using a converted username.
Reporter:
Karl Anderson <[email protected]>
3.19.16
Kazoo Changes
Changes to 3.19 after version 3.19.15
Resolved Tickets
Normal (5)
- KAZOO-3313 Outbound virtual fax stopped processing jobs until the whapp was restarted
- KAZOO-3233 As a crossbar endpoint, I would like to set encodings provided without other modules adding theirs so I can control what encodings are supported
- KAZOO-3232 As a crossbar endpoint, I would like to set languages provided without other modules adding theirs so I can control what languages are supported
- KAZOO-3231 As a crossbar endpoint, I would like to set content types accepted without other endpoints previous to me adding theirs
- KAZOO-3230 As a crossbar endpoint, I would like to set content types provided by me and not have previous endpoints add theirs
Change Details
KAZOO-3313
Summary:
Outbound virtual fax stopped processing jobs until the whapp was restarted
Description:
As reported:
The case was: all the outbound virtual fax stopped working. The bigcouch servers are fine and we have lots of outbound fax pending there. At the same time, I could not find the line "fetched <number> jobs, attempting to distribute to workers" in our log file anymore. Instead, I see lines like "fax_jobs:121 (<0.1270.0>) unhandled message: timeout" in the log file every 5 seconds. I know kazoo server tries to grab fax job every 5 second(timeout). Based on this log line, we know the info is 'timeout'. My question is how come the function "handle_info('timeout', #state{jobs=[]}=State)" defined before the "handle_info(_Info, State)" was not called. Everything went back to normal(no such weird log anymore) after we restart the whistle_apps on that server. That server is running version kazoo 3.12.
Reporter:
Karl Anderson <[email protected]>
KAZOO-3233
Summary:
As a crossbar endpoint, I would like to set encodings provided without other modules adding theirs so I can control what encodings are supported
Description:
Reporter:
James Aimonetti <[email protected]>
KAZOO-3232
Summary:
As a crossbar endpoint, I would like to set languages provided without other modules adding theirs so I can control what languages are supported
Description:
See parent ticket for more, but restrict setting languages provided to the last endpoint on the URI
Reporter:
James Aimonetti <[email protected]>
KAZOO-3231
Summary:
As a crossbar endpoint, I would like to set content types accepted without other endpoints previous to me adding theirs
Description:
Same as KAZOO-3230, except for content_types_accepted. Only the last endpoint module should be setting these.
Reporter:
James Aimonetti <[email protected]>
KAZOO-3230
Summary:
As a crossbar endpoint, I would like to set content types provided by me and not have previous endpoints add theirs
Description:
Currently, api_resource will fold over all request nouns to run their "content_types_provided" binding. However, I think only the last noun in the URI will control the output of the response. Save some processing time by only executing the binding for the last noun on the URI
Reporter:
James Aimonetti <[email protected]>
3.19.15
Kazoo Changes
Changes to 3.19 after version 3.19.14
Resolved Tickets
Blocker (1)
- KAZOO-3247 As a developer, I would like smart pbx to send me "enabled = true" so that the provisioner knows that the line has been configured
Major (1)
- KAZOO-3290 When listing port requests of descendants, the API sends back a list of all accounts, even those without port requests
Normal (11)
- KAZOO-3300 handle sip unregister
- KAZOO-3295 As a developer, I would like to issue metaflow commands against the b-leg of a call with metaflows configured at the account level
- KAZOO-3293 eavesdrop: call redirection
- KAZOO-3258 BigCouch can return 409 but still store the document which does not flush the cache
- KAZOO-3237 As a UI developer, I want a way to search for callflows by both their name and number(s), so that I can implement a usable search feature in the Callflows App
- KAZOO-3234 As a system admin, I would like Doodle to stop trying to start when access is refused by the broker so that my logs don't fill up with errors
- KAZOO-3209 Konami transfer takeback not working as expected
- KAZOO-3169 Crossbar bug handling invalid request to post resoruces.
- KAZOO-2592 When filling a port via the porting manager the numbers should be listed
- KAZOO-472 Support an option in the timezone on the device section to override the account level setting
- KAZOO-3125 TIcket to track issues with init scripts in centos 6.5
Trivial (1)
- KAZOO-3276 As a UI dev, I want a "Content-Disposition" header when requesting the cdrs as a CSV file, so that the browser can correctly interpret it
Change Details
KAZOO-3247
Summary:
As a developer, I would like smart pbx to send me "enabled = true" so that the provisioner knows that the line has been configured
Description:
Currently, all lines are disabled by default. I would like smart pbx to include the enabled = 1, for true, when the device is initially created.
"settings": {
"lines": [
{
"basic": {
"enable": "0",
....
Reporter:
Ricky Ing <[email protected]>
KAZOO-3290
Summary:
When listing port requests of descendants, the API sends back a list of all accounts, even those without port requests
Description:
It would be better to only send back the accounts with existing, port requests, using this format:
[
{
id: {{account_id}},
name: {{account_name}},
port_requests: [
{{port_requests}}
]
}
]
Acceptance criteria:
- send only accounts which contains port requests,
- use the new format to send the data.
Reporter:
Joris Tirado <[email protected]>
KAZOO-3300
Summary:
handle sip unregister
Description:
some devices send unregister (REGISTER with expires=0) but we keep the registration active.
Reporter:
Luis Azedo <[email protected]>
KAZOO-3295
Summary:
As a developer, I would like to issue metaflow commands against the b-leg of a call with metaflows configured at the account level
Description:
It appears that when bridging to devices, a metaflow request for the b-leg isn't sent when the account is configured for metaflows. It should!
Reporter:
James Aimonetti <[email protected]>
KAZOO-3293
Summary:
eavesdrop: call redirection
Description:
Reporter:
SIPLABS Communications <[email protected]>
KAZOO-3258
Summary:
BigCouch can return 409 but still store the document which does not flush the cache
Description:
Sometimes we got conflicting error when updating a doc and we have not figure out the exact root cause. But we do notice that normally the 1st "POST" was successful based on the "pvt_modified" field but somehow we still got 409 error. The real problem is all the "POST" against the same doc after the 1st one failed with 409 and those 409 were real(doc was not updated). I think the current cache mechanism cause this. For example for doc XYZ, the current revision is 7 in both bigcouchDB and cache. We issue a "POST" request and the revision become 8 in bigcouchDB but somehow we get 409 error. Since the cache will not be cleaned in case the operation failed(it is a fake failure in this case), all the following "POST" operations will fail with 409 because they are all based on the old doc(revision 7) in the cache.
So is it possible to clean the cache on receipt of 409 on kazoo like what is happening for successful "POST" operation. At least make it a operation so we can set.
Reporter:
Karl Anderson <[email protected]>
KAZOO-3237
Summary:
As a UI developer, I want a way to search for callflows by both their name and number(s), so that I can implement a usable search feature in the Callflows App
Description:
Right now, the search API allows us to search for callflows by "name", but not by "numbers" (which is an array).
We want to be able to search by both, and moreover by both at the same time (as in "look in both name and numbers field for a match for the searched value").
Reporter:
Maxime Roux <[email protected]>
KAZOO-3234
Summary:
As a system admin, I would like Doodle to stop trying to start when access is refused by the broker so that my logs don't fill up with errors
Description:
When Doodle is configured with default creds, it will try, ad-nauseum, to connect to the broker even though it will never succeed. When the broker returns "ACCESS_REFUSED" as in the log line below, Doodle should log loudly (lager:warning or lager:error maybe) that the creds are wrong; Doodle should then stop trying to access the broker.
2015-01-13T13:45:07.168330-05:00 apps001-staging 2600hz[4387]: |00000000000|wh_amqp_connection:320 (<0.31754.6>) failed to connect to 'amqp://user:[email protected]:5672/babble' will retry: {auth_failure,"ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile."}
Reporter:
James Aimonetti <[email protected]>
KAZOO-3209
Summary:
Konami transfer takeback not working as expected
Description:
Takeback (*1) works fine as long as the transferee did not yet pickup the call (during 'ringing'), but if used during the conversation of transferer and transferee the call is dropped and the caller is left on hold waiting forever.
Reporter:
Arne van Balgoijen <[email protected]>
KAZOO-3169
Summary:
Crossbar bug handling invalid request to post resoruces.
Description:
Cross bar returns 500 error on invalid json (gateways in this request was incorrect as it should be an array of objects). Instead of returnign an error, the request passed JSON validation and caused an error on the server side. Reqeust was definitely invalid, but it
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|api_resource:101 (<0.17350.36>) PUT: /v1/accounts/97b2b81afa212847f3a8484ee18830b0/local_resources? from 10.26.0.100
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|api_resource:156 (<0.17350.36>) run: known_methods
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|api_resource:176 (<0.17350.36>) run: allowed_methods
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|api_util:181 (<0.17350.36>) application/json content type when getting req data
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|api_util:443 (<0.17350.36>) request has a json payload: {"data":{"name":"offnet 0","makebusy":{"test":true,"gateway":true,"proxy":"10.26.0.127","register":false},"gateways":{"enabled":true,"server":"10.26.0.130","prefix":"^\d+$"}}}
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|api_util:463 (<0.17350.36>) request envelope is valid
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|kazoo_bindings:679 (<0.17350.36>) matched [<<"local_resources">>,<<"allowed_methods">>,<<"">>] to [<<"local_resources">>,<<"allowed_methods">>,<<"v1_resource">>]
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|api_resource:219 (<0.17350.36>) adding cors headers
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|cb_accounts:957 (<0.17350.36>) account 97b2b81afa212847f3a8484ee18830b0 db exists, setting operating database as account%2F97%2Fb2%2Fb81afa212847f3a8484ee18830b0
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|api_util:652 (<0.17350.36>) using auth token from header
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|kazoo_bindings:679 (<0.17350.36>) matched [<<"authenticate">>,<<"">>] to [<<"authenticate">>,<<"v1_resource">>]
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|cb_ip_auth:88 (<0.17350.36>) attemping to authenticate ip 10.26.0.100
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|crossbar_doc:361 (<0.17350.36>) getting start_key from request: undefined
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|crossbar_doc:320 (<0.17350.36>) not enabling pagination
Dec 3 22:15:09 test 2600hz[1433]: |6668635f3767f38447892b84d0851b3c|crossbar_doc:269 (<0.17350.36>) limit: undefined page_size: undefined
Dec 3 22:15:09 test 2600hz[1433]: |...