├── .gitignore ├── .idea ├── encodings.xml ├── misc.xml ├── modules.xml ├── scopes │ └── scope_settings.xml ├── vcs.xml └── yaai.iml ├── Documentation.html ├── LICENSE.txt ├── README.md ├── RELEASE-NOTES ├── SugarModules ├── include │ ├── SugarFields │ │ └── Fields │ │ │ └── Phone │ │ │ └── ListView.tpl │ ├── javascript │ │ └── jquery │ │ │ └── jquery.pack.js │ └── language │ │ ├── call_status_dom__en_us.lang.php │ │ ├── call_status_dom__ge_ge.lang.php │ │ └── call_status_dom__ru_ru.lang.php ├── modules │ ├── Administration │ │ ├── asterisk_configurator.php │ │ └── language │ │ │ ├── en_us.lang.php │ │ │ ├── ge_ge.lang.php │ │ │ └── ru_ru.lang.php │ ├── Asterisk │ │ ├── asteriskLogger.php │ │ ├── include │ │ │ ├── AsteriskJS.php │ │ │ ├── callCreate.php │ │ │ ├── callinize_db.php │ │ │ ├── controller.php │ │ │ ├── css │ │ │ │ ├── asterisk.css │ │ │ │ ├── jquery.fancybox.css │ │ │ │ └── screen_ie.css │ │ │ ├── images │ │ │ │ ├── banner_callrecording.jpg │ │ │ │ ├── banner_fop2.jpg │ │ │ │ ├── banner_mobile_cropped.jpg │ │ │ │ ├── blank.gif │ │ │ │ ├── call_active.gif │ │ │ │ ├── call_noextset.gif │ │ │ │ ├── call_transfer-blue.png │ │ │ │ ├── call_transfer-orange.png │ │ │ │ ├── callinize-configure-logo.png │ │ │ │ ├── click-to-dial-calling.gif │ │ │ │ ├── click-to-dial.png │ │ │ │ ├── close_16.png │ │ │ │ ├── dialpad-grid.png │ │ │ │ ├── download.png │ │ │ │ ├── fancybox_loading.gif │ │ │ │ ├── fancybox_overlay.png │ │ │ │ ├── fancybox_sprite.png │ │ │ │ ├── im_callphone3.png │ │ │ │ ├── logo.png │ │ │ │ ├── play.png │ │ │ │ └── unrelate-call-icon.png │ │ │ ├── javascript │ │ │ │ ├── callPopups.js │ │ │ │ ├── dialout.js │ │ │ │ ├── jquery.dropdown.js │ │ │ │ ├── jquery.fancybox.js │ │ │ │ └── offlineMode │ │ │ │ │ ├── handlebars-1.0.rc.1.js │ │ │ │ │ ├── handlebars.runtime-1.0.rc.1.js │ │ │ │ │ ├── images │ │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ │ │ ├── ui-bg_flat_55_fbec88_40x100.png │ │ │ │ │ ├── ui-bg_glass_75_d0e5f5_1x400.png │ │ │ │ │ ├── ui-bg_glass_85_dfeffc_1x400.png │ │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ │ │ │ ├── ui-bg_gloss-wave_55_5c9ccc_500x100.png │ │ │ │ │ ├── ui-bg_inset-hard_100_f5f8f9_1x100.png │ │ │ │ │ ├── ui-bg_inset-hard_100_fcfdfd_1x100.png │ │ │ │ │ ├── ui-icons_217bc0_256x240.png │ │ │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ │ │ ├── ui-icons_469bdd_256x240.png │ │ │ │ │ ├── ui-icons_6da8d5_256x240.png │ │ │ │ │ ├── ui-icons_cd0a0a_256x240.png │ │ │ │ │ ├── ui-icons_d8e7f3_256x240.png │ │ │ │ │ └── ui-icons_f9bd01_256x240.png │ │ │ │ │ ├── jquery-1.8.2.min.js │ │ │ │ │ ├── jquery-ui.css │ │ │ │ │ └── jquery-ui.js │ │ │ ├── notes │ │ │ ├── opencnam.php │ │ │ ├── sugar_rest.php │ │ │ ├── template │ │ │ │ ├── call-template.html │ │ │ │ └── call-template.tmpl │ │ │ └── tests │ │ │ │ ├── fake_dialer │ │ │ │ ├── call_green.jpg │ │ │ │ ├── test_actions.php │ │ │ │ ├── test_ui.js │ │ │ │ └── test_ui.php │ │ │ │ ├── parseTest.php │ │ │ │ ├── queryTests.php │ │ │ │ ├── regexTest.php │ │ │ │ └── restTest.php │ │ └── language │ │ │ ├── en_us.lang.php │ │ │ ├── es_es.lang.php │ │ │ ├── ge_ge.lang.php │ │ │ ├── ru_ru.lang.php │ │ │ └── sl_si.lang.php │ ├── Calls │ │ ├── language │ │ │ ├── en_us.lang.php │ │ │ ├── ge_ge.lang.php │ │ │ └── ru_ru.lang.php │ │ ├── language_folder_is_only_thing_installed_by_module_loader.txt │ │ ├── metadata │ │ │ ├── detailviewdefs.php │ │ │ ├── detailviewdefs_onaangetaste module.php │ │ │ ├── editviewdefs.php │ │ │ ├── editviewdefs_onaangetaste module.php │ │ │ ├── listviewdefs.php │ │ │ ├── listviewdefs_onaangetaste module.php │ │ │ ├── quickcreatedefs.php │ │ │ └── quickcreatedefs_onaangetaste module.php │ │ └── views │ │ │ └── view.list.php │ ├── Configurator │ │ ├── _Ext_(not needed i think) │ │ │ └── Language │ │ │ │ ├── bg_BG.lang.ext.php │ │ │ │ ├── ca_ES.lang.ext.php │ │ │ │ ├── cs_CZ.lang.ext.php │ │ │ │ ├── da_DK.lang.ext.php │ │ │ │ ├── de_DE.lang.ext.php │ │ │ │ ├── en_UK.lang.ext.php │ │ │ │ ├── en_us.lang.ext.php │ │ │ │ ├── es_es.lang.ext.php │ │ │ │ ├── et_EE.lang.ext.php │ │ │ │ ├── fi_fi.lang.ext.php │ │ │ │ ├── fr_FR.lang.ext.php │ │ │ │ ├── ge_ge.lang.ext.php │ │ │ │ ├── he_IL.lang.ext.php │ │ │ │ ├── hu_HU.lang.ext.php │ │ │ │ ├── it_it.lang.ext.php │ │ │ │ ├── ja_JP.lang.ext.php │ │ │ │ ├── lt_LT.lang.ext.php │ │ │ │ ├── nb_NO.lang.ext.php │ │ │ │ ├── nl_NL.lang.ext.php │ │ │ │ ├── pl_PL.lang.ext.php │ │ │ │ ├── pt_PT.lang.ext.php │ │ │ │ ├── pt_br.lang.ext.php │ │ │ │ ├── ro_RO.lang.ext.php │ │ │ │ ├── ru_RU.lang.ext.php │ │ │ │ ├── sr_RS.lang.ext.php │ │ │ │ ├── sv_SE.lang.ext.php │ │ │ │ ├── tr_TR.lang.ext.php │ │ │ │ └── zh_cn.lang.ext.php │ │ ├── asterisk_config_meta.php │ │ ├── asterisk_configurator.php │ │ ├── asterisk_configurator.tpl │ │ ├── asterisk_configurator_table.tpl │ │ ├── configuratorGeneratorUtil.php │ │ ├── language │ │ │ ├── en_us.lang.php │ │ │ ├── ge_ge.lang.php │ │ │ └── ru_ru.lang.php │ │ └── run_configGeneratorUtil.sh │ ├── Users │ │ ├── DetailView.html │ │ ├── DetailView.html.ORIGINAL │ │ ├── DetailView.html.patch │ │ ├── DetailView.php │ │ ├── DetailView.php.ORIGINAL │ │ ├── DetailView.tpl │ │ ├── DetailView_onaangetaste module.php │ │ ├── EditView.html │ │ ├── EditView.html.ORIGINAL │ │ ├── EditView.html.patch │ │ ├── EditView.php │ │ ├── EditView.php.ORIGINAL │ │ ├── EditView.tpl │ │ ├── EditView_onaangetaste module.php │ │ ├── Save.php │ │ ├── Save.php.ORIGINAL │ │ ├── Save_onaangetaste module.php │ │ ├── language │ │ │ ├── en_us.lang.php │ │ │ ├── ge_ge.lang.php │ │ │ └── ru_ru.lang.php │ │ ├── metadata (unused_delete) │ │ │ ├── editviewdefs.php │ │ │ ├── listviewdefs.php │ │ │ └── listviewdefs_onaangetaste module.php │ │ └── studio.php │ └── _Archive │ │ ├── Accounts │ │ ├── language_folder_is_only_thing_installed_by_module_loader.txt │ │ └── metadata │ │ │ ├── detailviewdefs.non aangepaste connecter.php │ │ │ ├── detailviewdefs.php │ │ │ ├── listviewdefs.non aangepaste conncetor.php │ │ │ └── listviewdefs.php │ │ ├── Calls │ │ ├── language │ │ │ ├── en_us.lang.php │ │ │ ├── ge_ge.lang.php │ │ │ └── ru_ru.lang.php │ │ ├── metadata │ │ │ ├── detailviewdefs.php │ │ │ ├── detailviewdefs_onaangetaste module.php │ │ │ ├── editviewdefs.php │ │ │ ├── editviewdefs_onaangetaste module.php │ │ │ ├── listviewdefs.php │ │ │ ├── listviewdefs_onaangetaste module.php │ │ │ ├── quickcreatedefs.php │ │ │ └── quickcreatedefs_onaangetaste module.php │ │ └── views │ │ │ └── view.list.php │ │ └── Contacts │ │ └── metadata │ │ ├── detailviewdefs.php │ │ ├── detailviewdefs_onaangetaste module.php │ │ ├── listviewdefs.php │ │ └── listviewdefs_onaangetaste module.php └── service │ └── callinize │ ├── SugarWebServiceImplv4_1_callinize.php │ ├── registry.php │ └── rest.php ├── TODO.txt ├── UserManual.txt ├── build_zip.bat ├── build_zip.sh ├── compileHtmlTemplate.sh ├── copyToDir.sh ├── copyToPro.bat ├── manifest.php ├── manifest.template.php ├── manifest_updater.php ├── misc ├── README ├── asteriskLogger_v5.2_AMIv1.0.php ├── asteriskLogger_v6.1_AMIv1.1.php ├── asterisk_logger ├── create_win_service.php ├── en_us.lang.php └── php_win32service.dll ├── nbproject ├── project.properties └── project.xml └── scripts ├── post_install.php └── pre_install.php /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/* 2 | *.bak 3 | *.zip 4 | *.pnproj 5 | *.pnps 6 | copyFromLiveSystem.* 7 | copyToLiveSystem.* 8 | *wrong_16.png 9 | *cnamTest 10 | *unused_icons* 11 | .idea 12 | *.idea* 13 | .idea/* 14 | .idea/ 15 | *idea* 16 | *tplOut.txt 17 | .DS_Store 18 | /nbproject/private/ 19 | ca-bundle-mozilla.crt 20 | mampCopy.sh 21 | SugarModules/modules/Asterisk/include/tests/sugarRestTest.php -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | http://www.w3.org/1999/xhtml 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/scopes/scope_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/yaai.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Documentation.html: -------------------------------------------------------------------------------- 1 |

Checkout www.callinize.com to learn about paid editions. 2 | 3 |

User Manual, Source Code (for callinize community), and Help are all maintained on the github project. 4 | https://github.com/blak3r/yaai/wiki/User-Manual -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ##Callinize for SugarCRM 2 | Callinize (formerly known as yaai) is the premier telephony integration supporting Asterisk and SugarCRM. 3 | 4 | This repo is for the community edition of Callinize. Be sure to checkout [Callinize Basic & Pro Features here](http://www.callinize.com) 5 | 6 | Documentation for this project is on the Wiki pages. 7 | If you have questions, please post them in the issues section. 8 | 9 | ### Demo Video 10 | http://www.youtube.com/watch?v=UAdxUNlPDzQ 11 | 12 | ### Links to Documentation 13 | https://github.com/blak3r/yaai/wiki/User-Manual 14 | See also: https://github.com/blak3r/yaai/wiki/_pages 15 | 16 | ### Callinize Discussion Forum for asking questions, reporting bugs, feature requests, etc. 17 | https://github.com/blak3r/yaai/issues 18 | 19 | For paid support or custom development requests, please contact us at hello@callinize.com. 20 | 21 | ### Social 22 | Subscribe to the mailing list here for news: http://eepurl.com/rmdML 23 | 24 | Follow us on twitter @callinize 25 | 26 | 27 | [![gitimg](https://gitimg.com/blak3r/yaai/README.md/track)](http://gitimg.com) 28 | -------------------------------------------------------------------------------- /RELEASE-NOTES: -------------------------------------------------------------------------------- 1 | IMPORTANT: when upgrading, please see the instructions in the User Manual 2 | 3 | ##Version 3.6.0 (2013-07-28) 4 | * Enhancements 5 | ** Click To Dial is more intelligent, it always relates call to the record clicked. Before if multiple matching phone numbers, before if phone number matched multiple contacts it showed radio buttons. 6 | ** New config option "Max Call Popups" controls the maximum number of popups that will appear on a users screen. 7 | ** The 'X' button is easier to click to close call popups. 8 | ** (Basic/Pro Only) - Calls to Queues and RingGroups now popup on callee's screen before answering. 9 | * Bug Fixes 10 | ** dial_events_log in admin config now works. 11 | ** Admin Checkboxes always appeared as checked. 12 | 13 | 14 | ##Version 3.5.4 (2013-07-08) 15 | * New User Interface 16 | * Ability to specify which contact and account phone fields are searched. 17 | * Major Performance Improvements 18 | * Improvements to support for ring groups and queues. 19 | * Ability to relate calls to a contact or account. 20 | * Account Matching in Popups. 21 | * Improvements to Admin Pages to have checkboxes instead of textboxes for boolean config elements. 22 | * Cleaner formatting of asterisk log statements. 23 | * New dial events log 24 | 25 | 26 | ##Version 2.6.0 (2012-11-03)## 27 | 28 | ### NEW Features ### 29 | User can have multiple extensions (comma separated) Issue #22 30 | Calls can now be related to contacts created even after the call is hung up. 31 | Short Call Status allow the user to specify whether or not missed calls get their Call Status set to "Missed" or "Held". If it's Missed, then the call will show up as an open task. I set the default ot be Held for future installs. 32 | 33 | ### Improvements / Bug Fixes ### 34 | Various bug fixes related to AJAX-UI 35 | Improved Daemon Script 36 | Added lots more config options. 37 | Ability to disable OpenCNAM integration. 38 | Fix IE bug where multiple click to dial icons would appear in contact list view. 39 | Fix for Issue #75, Outbound Caller Id not set 40 | Improved compatibility for POTS asterisk (ie not voip). Outbound calls now pull outbound phone number in properly from dialstring. 41 | IE8 compatibility for Click to Dial 42 | Click-2-Dial now works when Letrium Quick Edit Detail View is installed. 43 | Fix for Issue #25, Calls are related to contacts created after call ends. 44 | Fix to work with ZenoSMS 45 | Better AMI Connection Diagnostics / Markdown Logging 46 | Retries soap login indefinitely. 47 | Updated time handling to fix #40. 48 | Fixed a minor localization bug. 49 | Adds support for LDAP auth (Issue #59) 50 | Fixed bug in Stripping Inbound / Outbound Prefixes. 51 | Deletes calls_cstm now also. 52 | Fixed open_cnam print error 53 | Adds Support For nested RingGroups, still has dev debugs on 54 | Merge pull request #20 from superles/patch-1 55 | Merge pull request #49 from trustmaster/master 56 | Fixed #44: using raw English call statuses as before localization. 57 | Merge branch 'master' of git://github.com/blak3r/yaai 58 | Merge pull request #42 from kerio-fstedronsky/patch-1 59 | Fix blak3r/yaai#41 60 | Cleaned up some PHP Notices 61 | Changed default search length to 10 digits. 62 | Fix for Issue #69 and Issue #66 63 | Fix for #40 timestamp handling 64 | LDAP Auth Supported 65 | Fixed Bug where Transfer didn't use context specified in the config. 66 | 67 | 68 | 69 | ## Version 2.4 (2012-07-22) 70 | Fixes a bug where AJAX Calls prevented popups from closing. 71 | Adds support for sugar 6.5, fixes some bugs, adds Russian localization. 72 | 73 | 74 | 75 | ## Version 2.3 (2012-05-09) 76 | 77 | ### New Features 78 | * Added Transfer Call Support 79 | * Improved UI on call popups to allow for selecting which contact the call 80 | should be related to when multiple contacts match. 81 | * Added OpenCNAM.com support for Caller ID 82 | * Ability to manually relate a call to particular contact with a popup 83 | * Relates to Account instead of a contact if number matches an account 84 | number or if there are multiple contacts with the same phone number from 85 | the same account. 86 | * Doesn't log account to any contact if multiple contacts have the same 87 | phone number and they belong to two different accounts. 88 | 89 | ### Changes: 90 | * Lots of minor bug fixes. 91 | * Module Loader automatically updates database 92 | * Improved stability of asteriskLogger 93 | * Performance Improvements. 94 | 95 | 96 | 97 | ## Version 2.0.3 (2012-04-03) 98 | 99 | * Brand New \\\"gchat\\\" inspired UI. 100 | * Added more configurable options to support custom dial plans. 101 | * Supports multiple calls, ability to leave notes for up to an hour after 102 | call has hungup. 103 | * Improved support for Ring Groups which call an external phone number 104 | (like cell phones). 105 | * Improved stability of asterisk logger, doesn\\\'t hang as much 106 | * Lots of misc bug fixes. -------------------------------------------------------------------------------- /SugarModules/include/SugarFields/Fields/Phone/ListView.tpl: -------------------------------------------------------------------------------- 1 | {* 2 | * Author: Blake Robertson 3 | * Date: 5/7/2012 4 | * 5 | * Adds the .phone class to any contact list view (including subpanels). Modifying metadata doesn't work on subpanels in v6.4 6 | * See this forum post for complete history: http://forums.sugarcrm.com/f6/adding-customcode-metadata-account_subpanel_contacts-does-nothing-79951/ 7 | * 8 | * Manual Install Instructions: 9 | * Copy to /custom/include/SugarFields/Fields/Phone 10 | * This is based off v6.4.2 /include/SugarFields/Fields/Phone if this file is updated in the future versions of sugar you should 11 | * copy it to the custom folder and add the part around the last line. 12 | * 13 | *} 14 | {capture name=getPhone assign=phone}{sugar_fetch object=$parentFieldArray key=$col}{/capture} 15 | 16 | {sugar_phone value=$phone usa_format=$usa_format} -------------------------------------------------------------------------------- /SugarModules/include/language/call_status_dom__en_us.lang.php: -------------------------------------------------------------------------------- 1 | 'Planned', 5 | 'Held' => 'Held', 6 | 'Not Held' => 'Not Held', 7 | 'Missed' => 'Missed', 8 | 'In Limbo' => 'In Limbo', 9 | ); -------------------------------------------------------------------------------- /SugarModules/include/language/call_status_dom__ge_ge.lang.php: -------------------------------------------------------------------------------- 1 | 'Geplant', 5 | 'Held' => 'Gehalten', 6 | 'Not Held' => 'Nicht Gehalten', 7 | 'Missed' => 'Verpasst', 8 | 'In Limbo' => 'In Limbo', 9 | ); -------------------------------------------------------------------------------- /SugarModules/include/language/call_status_dom__ru_ru.lang.php: -------------------------------------------------------------------------------- 1 | 'Запланирован', 5 | 'Held' => 'Принят', 6 | 'Not Held' => 'Не принят', 7 | 'Missed' => 'Пропущен', 8 | 'In Limbo' => 'В процессе', 9 | ); -------------------------------------------------------------------------------- /SugarModules/modules/Administration/asterisk_configurator.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Administration/language/en_us.lang.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Administration/language/ge_ge.lang.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Administration/language/ru_ru.lang.php: -------------------------------------------------------------------------------- 1 | 'ASTERISK �?š�?¾�?½Ñ„�?¸�?³ÑƒÑ€�?°Ñ†�?¸Ñ�', 35 | // 'LBL_ASTERISK' => '�?£Ñ�Ñ‚�?°�?½�?¾�?²�?¸Ñ‚�?µ �?¿�?°Ñ€�?°�?¼�?µÑ‚ры Ñ��?¾�?µ�?´�?µ�?½�?µ�?½�?¸Ñ� ASTERISK', 36 | // 'LBL_ASTERISK_DESC' => '�?£Ñ�Ñ‚�?°�?½�?¾�?²�?¸Ñ‚�?µ �?½�?°Ñ�тр�?¾�?¹�?º�?¸ �?½�?µ�?¾�?±Ñ…�?¾�?´�?¸�?¼Ñ‹�?µ �?´�?»Ñ� Ñ��?¾�?µ�?´�?¸�?½�?µ�?½�?¸Ñ� Ñ� ASTERISK Ñ��?µÑ€�?²�?µÑ€�?¾�?¼.', 37 | // 'LBL_ASTERISK_TITLE' => 'ASTERISK SugarCRM Connector', 38 | //); 39 | 40 | if (!isset($mod_strings)) { $mod_strings = array(); } 41 | 42 | $mod_strings['LBL_MANAGE_ASTERISK'] = 'ASTERISK Конфигурация'; 43 | $mod_strings['LBL_ASTERISK'] = 'Установите параметры соеденения ASTERISK'; 44 | $mod_strings['LBL_ASTERISK_DESC'] = 'Установите настройки необходимые для соединения с ASTERISK сервером.'; 45 | $mod_strings['LBL_ASTERISK_TITLE'] = 'ASTERISK SugarCRM Connector'; 46 | 47 | ?> 48 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/controller.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/css/jquery.fancybox.css: -------------------------------------------------------------------------------- 1 | /*! fancyBox v2.1.2 fancyapps.com | fancyapps.com/fancybox/#license */ 2 | .fancybox-wrap, 3 | .fancybox-skin, 4 | .fancybox-outer, 5 | .fancybox-inner, 6 | .fancybox-image, 7 | .fancybox-wrap iframe, 8 | .fancybox-wrap object, 9 | .fancybox-nav, 10 | .fancybox-nav span, 11 | .fancybox-tmp 12 | { 13 | padding: 0; 14 | margin: 0; 15 | border: 0; 16 | outline: none; 17 | vertical-align: top; 18 | } 19 | 20 | .fancybox-wrap { 21 | position: absolute; 22 | top: 0; 23 | left: 0; 24 | z-index: 8020; 25 | } 26 | 27 | .fancybox-skin { 28 | position: relative; 29 | background: #f9f9f9; 30 | color: #444; 31 | text-shadow: none; 32 | -webkit-border-radius: 4px; 33 | -moz-border-radius: 4px; 34 | border-radius: 4px; 35 | } 36 | 37 | .fancybox-opened { 38 | z-index: 8030; 39 | } 40 | 41 | .fancybox-opened .fancybox-skin { 42 | -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 43 | -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 44 | box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 45 | } 46 | 47 | .fancybox-outer, .fancybox-inner { 48 | position: relative; 49 | } 50 | 51 | .fancybox-inner { 52 | overflow: hidden; 53 | } 54 | 55 | .fancybox-type-iframe .fancybox-inner { 56 | -webkit-overflow-scrolling: touch; 57 | } 58 | 59 | .fancybox-error { 60 | color: #444; 61 | font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; 62 | margin: 0; 63 | padding: 15px; 64 | white-space: nowrap; 65 | } 66 | 67 | .fancybox-image, .fancybox-iframe { 68 | display: block; 69 | width: 100%; 70 | height: 100%; 71 | } 72 | 73 | .fancybox-image { 74 | max-width: 100%; 75 | max-height: 100%; 76 | } 77 | 78 | #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { 79 | background-image: url('../images/fancybox_sprite.png'); 80 | } 81 | 82 | #fancybox-loading { 83 | position: fixed; 84 | top: 50%; 85 | left: 50%; 86 | margin-top: -22px; 87 | margin-left: -22px; 88 | background-position: 0 -108px; 89 | opacity: 0.8; 90 | cursor: pointer; 91 | z-index: 8060; 92 | } 93 | 94 | #fancybox-loading div { 95 | width: 44px; 96 | height: 44px; 97 | background: url('../images/fancybox_loading.gif') center center no-repeat; 98 | } 99 | 100 | .fancybox-close { 101 | position: absolute; 102 | top: -18px; 103 | right: -18px; 104 | width: 36px; 105 | height: 36px; 106 | cursor: pointer; 107 | z-index: 8040; 108 | } 109 | 110 | .fancybox-nav { 111 | position: absolute; 112 | top: 0; 113 | width: 40%; 114 | height: 100%; 115 | cursor: pointer; 116 | text-decoration: none; 117 | background: transparent url('../images/blank.gif'); /* helps IE */ 118 | -webkit-tap-highlight-color: rgba(0,0,0,0); 119 | z-index: 8040; 120 | } 121 | 122 | .fancybox-prev { 123 | left: 0; 124 | } 125 | 126 | .fancybox-next { 127 | right: 0; 128 | } 129 | 130 | .fancybox-nav span { 131 | position: absolute; 132 | top: 50%; 133 | width: 36px; 134 | height: 34px; 135 | margin-top: -18px; 136 | cursor: pointer; 137 | z-index: 8040; 138 | visibility: hidden; 139 | } 140 | 141 | .fancybox-prev span { 142 | left: 10px; 143 | background-position: 0 -36px; 144 | } 145 | 146 | .fancybox-next span { 147 | right: 10px; 148 | background-position: 0 -72px; 149 | } 150 | 151 | .fancybox-nav:hover span { 152 | visibility: visible; 153 | } 154 | 155 | .fancybox-tmp { 156 | position: absolute; 157 | top: -9999px; 158 | left: -9999px; 159 | visibility: hidden; 160 | } 161 | 162 | /* Overlay helper */ 163 | 164 | .fancybox-lock { 165 | overflow: hidden; 166 | } 167 | 168 | .fancybox-overlay { 169 | position: absolute; 170 | top: 0; 171 | left: 0; 172 | overflow: hidden; 173 | display: none; 174 | z-index: 8010; 175 | background: url('../images/fancybox_overlay.png'); 176 | } 177 | 178 | .fancybox-overlay-fixed { 179 | position: fixed; 180 | bottom: 0; 181 | right: 0; 182 | } 183 | 184 | .fancybox-lock .fancybox-overlay { 185 | overflow: auto; 186 | overflow-y: scroll; 187 | } 188 | 189 | /* Title helper */ 190 | 191 | .fancybox-title { 192 | visibility: hidden; 193 | font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; 194 | position: relative; 195 | text-shadow: none; 196 | z-index: 8050; 197 | } 198 | 199 | .fancybox-opened .fancybox-title { 200 | visibility: visible; 201 | } 202 | 203 | .fancybox-title-float-wrap { 204 | position: absolute; 205 | bottom: 0; 206 | right: 50%; 207 | margin-bottom: -35px; 208 | z-index: 8050; 209 | text-align: center; 210 | } 211 | 212 | .fancybox-title-float-wrap .child { 213 | display: inline-block; 214 | margin-right: -100%; 215 | padding: 2px 20px; 216 | background: transparent; /* Fallback for web browsers that doesn't support RGBa */ 217 | background: rgba(0, 0, 0, 0.8); 218 | -webkit-border-radius: 15px; 219 | -moz-border-radius: 15px; 220 | border-radius: 15px; 221 | text-shadow: 0 1px 2px #222; 222 | color: #FFF; 223 | font-weight: bold; 224 | line-height: 24px; 225 | white-space: nowrap; 226 | } 227 | 228 | .fancybox-title-outside-wrap { 229 | position: relative; 230 | margin-top: 10px; 231 | color: #fff; 232 | } 233 | 234 | .fancybox-title-inside-wrap { 235 | padding-top: 10px; 236 | } 237 | 238 | .fancybox-title-over-wrap { 239 | position: absolute; 240 | bottom: 0; 241 | left: 0; 242 | color: #fff; 243 | padding: 10px; 244 | background: #000; 245 | background: rgba(0, 0, 0, .8); 246 | } -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/css/screen_ie.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* 3 | * CSS Document 4 | * Written by Ryan Yonzon 5 | * http://ryan.rawswift.com/ 6 | */ 7 | 8 | /* 9 | * IE hack 10 | */ 11 | html, body { 12 | margin:0px; 13 | overflow:hidden; /* hide browser's main scrollbar */ 14 | height:100%; /* make sure we'll use 100% of the page's height */ 15 | } 16 | 17 | #main_container { 18 | width:100%; /* make sure we'll use 100% of page's width */ 19 | background-color:#ffffff; /* DO NOT REMOVE THIS; or you'll have issue w/ the scrollbar, when the mouse pointer is on a white space */ 20 | overflow-x: hidden; 21 | overflow-y: scroll; 22 | } 23 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/banner_callrecording.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/banner_callrecording.jpg -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/banner_fop2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/banner_fop2.jpg -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/banner_mobile_cropped.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/banner_mobile_cropped.jpg -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/blank.gif -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/call_active.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/call_active.gif -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/call_noextset.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/call_noextset.gif -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/call_transfer-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/call_transfer-blue.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/call_transfer-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/call_transfer-orange.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/callinize-configure-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/callinize-configure-logo.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/click-to-dial-calling.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/click-to-dial-calling.gif -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/click-to-dial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/click-to-dial.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/close_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/close_16.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/dialpad-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/dialpad-grid.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/download.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/fancybox_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/fancybox_loading.gif -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/fancybox_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/fancybox_overlay.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/fancybox_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/fancybox_sprite.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/im_callphone3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/im_callphone3.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/logo.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/play.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/images/unrelate-call-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/images/unrelate-call-icon.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/dialout.js: -------------------------------------------------------------------------------- 1 | //** 2 | // * Asterisk SugarCRM Integration 3 | // * (c) KINAMU Business Solutions AG 2009 4 | // * 5 | // * Parts of this code are (c) 2006. RustyBrick, Inc. http://www.rustybrick.com/ 6 | // * Parts of this code are (c) 2008 vertico software GmbH 7 | // * Parts of this code are (c) 2009 abcona e. K. Angelo Malaguarnera E-Mail admin@abcona.de 8 | // * Parts of this code are (c) 2012 Blake Robertson http://www.blakerobertson.com 9 | // * http://www.sugarforge.org/projects/yaai/ 10 | // * 11 | // * This program is free software; you can redistribute it and/or modify it under 12 | // * the terms of the GNU General Public License version 3 as published by the 13 | // * Free Software Foundation with the addition of the following permission added 14 | // * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK 15 | // * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY 16 | // * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. 17 | // * 18 | // * This program is distributed in the hope that it will be useful, but WITHOUT 19 | // * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 20 | // * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 21 | // * details. 22 | // * 23 | // * You should have received a copy of the GNU General Public License along with 24 | // * this program; if not, see http://www.gnu.org/licenses or write to the Free 25 | // * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 26 | // * 02110-1301 USA. 27 | // * 28 | // * You can contact KINAMU Business Solutions AG at office@kinamu.com 29 | // * 30 | // * The interactive user interfaces in modified source and object code versions 31 | // * of this program must display Appropriate Legal Notices, as required under 32 | // * Section 5 of the GNU General Public License version 3. 33 | // * 34 | // */ 35 | 36 | 37 | $(document).ready(function () { 38 | //.asterisk_phoneNumber is the deprecated v1.x class 39 | $('.phone,#phone_work,#phone_other,#phone_mobile,.asterisk_phoneNumber').each(function () { 40 | var phoneNr = $(this).text(); 41 | phoneNr = $.trim(phoneNr); // IE needs trim on separate line. 42 | 43 | // Regex searches the inner html to see if a child element has phone class, 44 | // this prevents a given number having more then one click to dial icon. 45 | // ? after the " is required for IE compatibility. IE strips the " around the class names apparently. 46 | // The /EDV.show_edit/ regex allows it to work with Letrium's Edit Detail View module. 47 | if (phoneNr.length > 1 && ( !/(class="?phone"?|id="?#phone|class="?asterisk_placeCall"?)/.test($(this).html()) || /EDV.show_edit/.test($(this).html()) )) { 48 | var contactId = $('input[name="record"]', document.forms['DetailView']).attr('value'); 49 | if (!contactId) { 50 | contactId = $('input[name="mass[]"]', $(this).parents('tr:first')).attr('value'); 51 | } 52 | 53 | if (window.callinize_user_extension) { 54 | $(this).append('

'); 55 | } 56 | else { 57 | $(this).append('   '); 58 | } 59 | 60 | $('.asterisk_placeCall', this).click(function () { 61 | 62 | var record = $(this).attr('record'); 63 | //change to spinner 64 | $("div").find("[record='" + record + "']").removeClass('activeCall').addClass('dialedCall'); 65 | 66 | 67 | 68 | var call = $.get('index.php?entryPoint=AsteriskCallCreate', 69 | {phoneNr: phoneNr, contactId: contactId, module:getModule()}, 70 | function (data) { 71 | console.log("CreateCall Action Response: " + data); 72 | if (data.indexOf('Error') != -1 || data.indexOf("ERROR") != -1) { 73 | alert("Click to Dial Failed:\n\n------------\n" + data + "\n------------\n"); // Shows error message on ClickToDial failure. 74 | } 75 | call = null; 76 | }); 77 | 78 | //remove spinner 79 | setTimeout(function () { 80 | $("div").find("[record='" + record + "']").removeClass('dialedCall').addClass('activeCall'); 81 | }, 5000); 82 | 83 | // Wait for 5 seconds 84 | setTimeout(function () { 85 | // If the request is still running, abort it. 86 | if (call) { 87 | call.abort(); 88 | } 89 | ; 90 | 91 | 92 | }, 20000); 93 | }); 94 | } 95 | 96 | function getModule(){ 97 | if(window.module_sugar_grp1 == undefined){ 98 | return getUrlParam('module'); 99 | }else{ 100 | return window.module_sugar_grp1; 101 | } 102 | } 103 | 104 | //internal function to assist in getting sugarcrm url parameters 105 | function getUrlParam(name) { 106 | 107 | var decodedUri = decodeURIComponent(window.location.href); 108 | var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(decodedUri); 109 | if (!results) { 110 | return null; 111 | } else { 112 | return results[1]; 113 | } 114 | } 115 | }); 116 | }); -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/jquery.dropdown.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery dropdown: A simple dropdown plugin 3 | * 4 | * Inspired by Bootstrap: http://twitter.github.com/bootstrap/javascript.html#dropdowns 5 | * 6 | * Copyright 2011 Cory LaViska for A Beautiful Site, LLC. (http://abeautifulsite.net/) 7 | * 8 | * Dual licensed under the MIT or GPL Version 2 licenses 9 | * 10 | */ 11 | if(jQuery) (function($) { 12 | console.log('extending'); 13 | $.extend($.fn, { 14 | dropdown: function(method, data) { 15 | 16 | switch( method ) { 17 | case 'hide': 18 | hideDropdowns(); 19 | return $(this); 20 | case 'attach': 21 | return $(this).attr('data-dropdown', data); 22 | case 'detach': 23 | hideDropdowns(); 24 | return $(this).removeAttr('data-dropdown'); 25 | case 'disable': 26 | return $(this).addClass('dropdown-disabled'); 27 | case 'enable': 28 | hideDropdowns(); 29 | return $(this).removeClass('dropdown-disabled'); 30 | } 31 | 32 | } 33 | }); 34 | 35 | function showMenu(event) { 36 | 37 | var trigger = $(this), 38 | dropdown = $( $(this).attr('data-dropdown') ), 39 | isOpen = trigger.hasClass('dropdown-open'); 40 | 41 | event.preventDefault(); 42 | event.stopPropagation(); 43 | 44 | hideDropdowns(); 45 | 46 | if( isOpen || trigger.hasClass('dropdown-disabled') ) return; 47 | 48 | dropdown 49 | .css({ 50 | left: dropdown.hasClass('anchor-right') ? 51 | trigger.offset().left - (dropdown.outerWidth() - trigger.outerWidth()) : trigger.offset().left, 52 | top: trigger.offset().top + trigger.outerHeight() 53 | }) 54 | .show(); 55 | 56 | trigger.addClass('dropdown-open'); 57 | 58 | }; 59 | 60 | function hideDropdowns(event) { 61 | 62 | var targetGroup = event ? $(event.target).parents().andSelf() : null; 63 | if( targetGroup && targetGroup.is('.dropdown-menu') && !targetGroup.is('A') ) return; 64 | 65 | $('BODY') 66 | .find('.dropdown-menu').hide().end() 67 | .find('[data-dropdown]').removeClass('dropdown-open'); 68 | }; 69 | 70 | $(function () { 71 | $('BODY').on('click.dropdown', '[data-dropdown]', showMenu); 72 | $('HTML').on('click.dropdown', hideDropdowns); 73 | // Hide on resize (IE7/8 trigger this when any element is resized...) 74 | if( !$.browser.msie || ($.browser.msie && $.browser.version >= 9) ) { 75 | $(window).on('resize.dropdown', hideDropdowns); 76 | } 77 | }); 78 | 79 | })(jQuery); -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_flat_55_fbec88_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_flat_55_fbec88_40x100.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_glass_75_d0e5f5_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_glass_75_d0e5f5_1x400.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_glass_85_dfeffc_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_glass_85_dfeffc_1x400.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_inset-hard_100_f5f8f9_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_inset-hard_100_f5f8f9_1x100.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_inset-hard_100_fcfdfd_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-bg_inset-hard_100_fcfdfd_1x100.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_217bc0_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_217bc0_256x240.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_469bdd_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_469bdd_256x240.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_6da8d5_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_6da8d5_256x240.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_d8e7f3_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_d8e7f3_256x240.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_f9bd01_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/javascript/offlineMode/images/ui-icons_f9bd01_256x240.png -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/notes: -------------------------------------------------------------------------------- 1 | 2 | 3 | Approach 1 -- Move all phone numbers to a particular relations table and search that way. 4 | Approach 2 -- Search for modules in priority order... Accounts, Contacts, Leads, Custom 5 | 6 | 7 | The callPopups... 8 | -- Best would be best to give all the options... 9 | 10 | Need an automated method for rest method. -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/opencnam.php: -------------------------------------------------------------------------------- 1 | account_sid = $account_sid; 14 | $this->auth_token = $auth_token; 15 | } 16 | 17 | /** 18 | * Fetch a list of records from OpenCNAM 19 | * 20 | * @param string $phoneNumber 10 digit US telephone number or E194 formatted number 21 | * 22 | * @return array fetch results of OpenCNAM lookup 23 | */ 24 | public function fetch($phoneNumber) { 25 | $credentials = ""; 26 | // print "OPENCNAM SET IN FETCH: " . $the_account_sid . $the_auth_token . "\n"; 27 | if( !empty($this->account_sid) && !empty($this->auth_token) ) { 28 | $credentials = "&auth_token={$this->auth_token}&account_sid={$this->account_sid}"; 29 | } 30 | 31 | // TODO need to format into E194 first to work outside the us. 32 | $phoneNumber = preg_replace('/\D/i', '', $phoneNumber); // Removes everything but digits. 33 | if( strlen($phoneNumber) == 10 ) { 34 | // Assume it's a US phone number. 35 | $phoneNumber = "+1" . $phoneNumber; 36 | } 37 | else if(strlen($phoneNumber) > 10 ) { 38 | $phoneNumber = "+" . $phoneNumber; 39 | } 40 | 41 | $request_url = "https://api.opencnam.com/v2/phone/" . $phoneNumber . "?format=pbx" . $credentials; 42 | //print "OPENCNAM URL: " . $request_url . "\n"; 43 | $response = file_get_contents($request_url); 44 | $response = trim($response); 45 | // "Currently running a lookup for phone '7858647222'. Please check back in a few seconds." 46 | if (empty($response) || strpos($response, "unavailable") !== false) { 47 | $response = ""; 48 | } 49 | return $response; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/template/call-template.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
{{title}}
4 |
5 | X 6 |
7 |
8 |
9 | 10 | 11 | 12 | 13 |
14 | 23 |
24 |
25 |

{{call_type}}

26 |
27 | 28 | 29 | 38 | 39 | 40 | 41 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 |
30 | {{select_contact_label}} 31 | {{#each beans}} 32 |

33 | 34 | {{bean_name}} 35 |

36 | {{/each}} 37 |
{{name_label}} 42 | {{bean_name}} 43 | 44 | 45 |
{{company_label}}{{parent_name}}
{{caller_id_label}}:{{caller_id}}
{{phone_number_label}}:{{phone_number}}
{{duration_label}}: 62 | {{duration}} 63 |
72 |
73 |
74 |
75 |
76 | 77 |
78 | 79 | 80 | 81 | 84 | 85 | 86 |
82 | 83 |
87 |
88 |
89 |
90 | 91 | 92 | 93 | 94 | 95 |
96 |
97 | 98 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/tests/fake_dialer/call_green.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/SugarModules/modules/Asterisk/include/tests/fake_dialer/call_green.jpg -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/tests/fake_dialer/test_actions.php: -------------------------------------------------------------------------------- 1 | fatal($phone_number); 42 | // Note: Can't use FROM_UNIXTIME like we do in asteriskLogger... reason is we have mysql timezone set to UTC there... 43 | $GLOBALS['current_user']->db->query( 44 | "INSERT INTO asterisk_log (call_record_id, asterisk_id, callstate, callerID, channel, remote_channel, timestamp_call, direction, user_extension, inbound_extension) 45 | VALUES ('{$new_id}', '{$asterisk_id}', 'Ringing', '{$phone_number}', '{$extension}', 'SIP/flowroute-00000023', '{$gmTimestamp}', 'I', '{$extension_four_digit}', '{$extension_four_digit}')" 46 | ); 47 | 48 | $GLOBALS['current_user']->db->query( 49 | "INSERT INTO calls (id, direction, status) 50 | VALUES ('{$new_id}', 'I', 'Planned')" 51 | ); 52 | 53 | $call_setup_data = array(); 54 | $call_setup_data['call_record_id'] = $new_id; 55 | 56 | return $call_setup_data; 57 | } 58 | 59 | function action_connected() { 60 | $GLOBALS['log']->fatal($_REQUEST["call_record_id"]); 61 | $call_record_id = $_REQUEST["call_record_id"]; 62 | $GLOBALS['current_user']->db->query("UPDATE asterisk_log SET callstate = 'Connected' WHERE call_record_id = '{$call_record_id}'"); 63 | } 64 | 65 | function action_hangup() { 66 | $call_record_id = $_REQUEST["call_record_id"]; 67 | $GLOBALS['current_user']->db->query("UPDATE asterisk_log SET callstate = 'Hangup' WHERE call_record_id = '{$call_record_id}'"); 68 | } 69 | 70 | function action_closed() { 71 | $call_record_id = $_REQUEST["call_record_id"]; 72 | $GLOBALS['current_user']->db->query("UPDATE asterisk_log SET uistate = 'Closed' WHERE call_record_id = '{$call_record_id}'"); 73 | 74 | $GLOBALS['log']->fatal($_REQUEST["contact_1"]); 75 | //only delete contacts when you have them 76 | if($_REQUEST["contact_1"]){delete_fake_contact($_REQUEST["contact_1"]);} 77 | if($_REQUEST["contact_2"]){delete_fake_contact($_REQUEST["contact_2"]);} 78 | } 79 | 80 | function action_create_contacts() { 81 | if ($_REQUEST['contacts'] >= 1 ) { 82 | $GLOBALS['log']->fatal('start creation of ' . $_REQUEST['contacts'] . 'contacts'); 83 | $phone_number = $_REQUEST['phone_number']; 84 | $GLOBALS['log']->fatal($phone_number); 85 | 86 | // TODO: First check to see if there are more then one matching contacts and don't create them if they do... 87 | 88 | $results = $GLOBALS['current_user']->db->query("SELECT UUID() AS newid"); 89 | $result = $GLOBALS['current_user']->db->fetchByAssoc($results); 90 | $new_id_jon = $result["newid"]; 91 | $insert = $GLOBALS['current_user']->db->query(" 92 | INSERT INTO contacts (id, date_entered, date_modified, modified_user_id, first_name, last_name, phone_mobile) 93 | VALUES ('{$new_id_jon}', NOW(), NOW(), 1, 'Jon', 'Doe', '{$phone_number}')"); 94 | 95 | $GLOBALS['log']->fatal('Created John Doe'); 96 | 97 | $contact_ids = array( 98 | 'contact_1' => $new_id_jon 99 | ); 100 | 101 | if ($_REQUEST['contacts'] == 2) { 102 | $results = $GLOBALS['current_user']->db->query("SELECT UUID() AS newid"); 103 | $result = $GLOBALS['current_user']->db->fetchByAssoc($results); 104 | $new_id_jane = $result["newid"]; 105 | 106 | $insert = $GLOBALS['current_user']->db->query(" 107 | INSERT INTO contacts (id, date_entered, date_modified, modified_user_id, first_name, last_name, phone_mobile) 108 | VALUES ('{$new_id_jane}', NOW(), NOW(), 1, 'Jane', 'Doe', '{$phone_number}')"); 109 | 110 | $GLOBALS['log']->fatal('Created Jan Doe'); 111 | 112 | $contact_ids['contact_2'] = $new_id_jane; 113 | } 114 | 115 | return $contact_ids; 116 | } 117 | } 118 | 119 | function delete_fake_contact($contact_id) { 120 | $GLOBALS['current_user']->db->query("DELETE FROM contacts WHERE id = '{$contact_id}'"); 121 | } 122 | 123 | function get_new_call_record_id() { 124 | $results = $GLOBALS['current_user']->db->query("SELECT UUID() AS newid"); 125 | $result = $GLOBALS['current_user']->db->fetchByAssoc($results); 126 | $new_id = $result["newid"]; 127 | 128 | return $new_id; 129 | } 130 | 131 | function get_extension_input() { 132 | $extension = "SIP/{$_REQUEST['extension']}-00000036"; 133 | 134 | return $extension; 135 | } 136 | 137 | function get_current_server_time() { 138 | $time = time(); 139 | 140 | return $time; 141 | } 142 | 143 | function get_random_asterisk_id() { 144 | $asterisk_id = rand(10000000000, 9999999999) . '.' . rand(10, 99); 145 | 146 | return $asterisk_id; 147 | } 148 | function get_extension_four_digit($extension){ 149 | //example = SIP/7025-0000003 150 | $result = explode('/', $extension); 151 | $result = explode('-', $result[1]); 152 | 153 | return $result[0]; 154 | 155 | } 156 | 157 | ?> 158 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/tests/fake_dialer/test_ui.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Callinize Fake Dialer 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | 17 | 18 |

Call Simulator

19 | 20 | This tool can be helpful to see what happens when a call would come in. If this tool works, but real calls don't, then this typically means asteriskLogger 21 | isn't generating events. This tool was created by the developers to simulate call cases easier without having to make real calls. 22 |

23 | Instructions: click the add call button. Enter the extension it should go to and the inbound phone number it should be coming from. Then, when the box 24 | shows up allowing you to drag the icon. You must go from ringing -> connected --> Hangup --> Closed (Don't skip steps). 25 |

26 | The matching contacts setting create the number of contacts specified. A temporary contact will be created named John Doe and Jane Doe (if 2 is selected). 27 | These contacts will be deleted once you get to the "Closed" stage. 28 |

29 | To simply see what will happen when someone calls you from a given number, leave it at 0. 30 |
31 |

32 | 33 | 34 |

35 |
36 | 37 |
38 |
39 |
40 | Call 41 |
42 | 43 |
44 |

Ringing

45 |
46 | 47 |
48 |

Connected

49 |
50 | 51 |
52 |

Hangup

53 |
54 | 55 |
56 |

Closed

57 |
58 |
59 |
60 | 61 |
62 |
63 |
64 | 65 | 66 | 67 | 68 | 69 |
70 |

Matching Contacts (if 1 or 2 is selected temporary Contacts will be added)

71 | 72 | 73 | 74 |
75 |
76 |
77 |
78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/tests/parseTest.php: -------------------------------------------------------------------------------- 1 | customCodeMethod("send_push", $arr); 18 | print $response; 19 | exit; -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/include/tests/queryTests.php: -------------------------------------------------------------------------------- 1 | array( 17 | 'user_name' => 'admin', 18 | 'password' => md5('SOMETHING'), 19 | ), 20 | ); 21 | $json = json_encode($parameters); 22 | $postArgs = 'method=login&input_type=json&response_type=json&rest_data=' . $json; 23 | 24 | print $postArgs; 25 | curl_setopt($ch, CURLOPT_POSTFIELDS, $postArgs); 26 | 27 | 28 | if( $debugMode ) { 29 | print "Debugging..."; 30 | // CURLOPT_VERBOSE: TRUE to output verbose information. Writes output to STDERR, 31 | // or the file specified using CURLOPT_STDERR. 32 | curl_setopt($ch, CURLOPT_VERBOSE, true); 33 | $verbose = fopen('php://temp', 'rw+'); 34 | curl_setopt($ch, CURLOPT_STDERR, $verbose); 35 | } 36 | 37 | $response = curl_exec ($ch); 38 | 39 | if( $debugMode ) { 40 | !rewind($verbose); 41 | $verboseLog = stream_get_contents($verbose); 42 | print $verboseLog; 43 | } 44 | 45 | 46 | $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); 47 | // curl_close($http); 48 | if( !preg_match( '/2\d\d/', $http_status ) ) { 49 | print "\n\n!!! ERROR: HTTP Status Code == " . $http_status . " (302 also isn't an error)\n"; 50 | } 51 | 52 | print $response; 53 | 54 | var_dump($response); 55 | ///--------------// 56 | $result = json_decode($response); 57 | 58 | print "RESULT:"; 59 | var_dump($result); 60 | 61 | //print "asdkfljaslkfajslfdkj" . print_r($result,true); 62 | print "SESSION" . $response['id']; 63 | 64 | // Get the session id 65 | $sessionId = $result['id']; 66 | 67 | print $sessionId . " is the session id"; 68 | // Now, let's add a new Accounts record 69 | $parameters = array( 70 | 'session' => $session, 71 | 'module' => 'Accounts', 72 | 'name_value_list' => array( 73 | array('name' => 'name', 'value' => 'New Account'), 74 | array('name' => 'description', 'value' => 'This is an 75 | account created from a REST web services call'), 76 | ), 77 | ); 78 | $json = json_encode($parameters); 79 | $postArgs = 'method=set_entry&input_type=json& 80 | response_type=json&rest_data=' . $json; 81 | curl_setopt($curl, CURLOPT_POSTFIELDS, $postArgs); 82 | // Make the REST call, returning the result 83 | $response = curl_exec($session); 84 | // Convert the result from JSON format to a PHP array 85 | $result = json_decode($response); 86 | // Get the newly created record id 87 | $recordId = $result['id']; 88 | 89 | print "new record id = " . $recordId; -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/language/en_us.lang.php: -------------------------------------------------------------------------------- 1 | array( 37 | 38 | 'ASTERISKLBL_COMING_IN' => 'Incoming call', 39 | 'ASTERISKLBL_GOING_OUT' => 'Outgoing call', 40 | 41 | 'ASTERISKLBL_DENY' => 'Decline', 42 | 'ASTERISKLBL_OPEN_CONTACT' => 'Open Contact', 43 | 'ASTERISKLBL_OPEN_MEMO' => 'Open Memo', 44 | 45 | 'ASTERISKLBL_PHONE' => 'Phone', 46 | 'ASTERISKLBL_NAME' => 'Name', 47 | 'ASTERISKLBL_COMPANY' => 'Account', 48 | 49 | 'REQUESTED' => 'Requested', 50 | 'PROCEEDING' => 'Proceeding', 51 | 'RINGBACK' => 'Waiting for Answer', 52 | 'INCOMING' => 'Incoming', 53 | 'RINGING' => 'Ringing', 54 | 'CONNECTED' => 'Connected', 55 | 'DIAL' => 'Ringing', 56 | 'HANGUP' => 'Hangup', 57 | 58 | // Added in v2.2 59 | 'ASTERISKLBL_DURATION' => 'Duration', 60 | 'ASTERISKLBL_SELECTCONTACT' => 'Select Contact', 61 | 'ASTERISKLBL_SELECTACCOUNT' => 'Select Account', // V3.2 62 | 'ASTERISKLBL_MULTIPLE_MATCHES' => 'Multiple Matches', 63 | 'ASTERISKLBL_CALLERID' => 'CallerID', 64 | 65 | // For asteriskLogger.php SOAP call entries 66 | 'CALL_AUTOMATIC_RECORD' => '** Automatic record **', 67 | 'CALL_IN_LIMBO' => 'In Limbo', 68 | 'CALL_STATUS_HELD' => 'Held', 69 | 'CALL_STATUS_MISSED' => 'Missed', 70 | 'CALL_NAME_CALL' => 'CALL', 71 | 'CALL_NAME_MISSED' => 'Missed Call', 72 | 'CALL_DESCRIPTION_CALLER_ID' => 'Caller ID', 73 | 'CALL_DESCRIPTION_MISSED' => 'Missed/failed call', 74 | 75 | // V3 Additions 76 | 'CALL_DESCRIPTION_PHONE_NUMBER' => 'Phone', 77 | 'CREATE' => 'Create', 78 | 'RELATE_TO' => 'Relate', 79 | 'BLOCK' => 'Block', 80 | 'SAVE' => 'Save Memo', 81 | 'ASTERISKLBL_USER_EXT' => 'User Ext', 82 | 'ASTERISKLBL_USER_EXT' => 'User Ext', 83 | 'ASTERISKLBL_INBOUND_EXT' => 'Inbound Ext', 84 | 'RELATE_TO_CONTACT' => 'Relate to Contact', 85 | 'RELATE_TO_LEAD' => 'Relate to Lead', 86 | 'RELATE_TO_ACCOUNT' => 'Relate to Account', 87 | 'CREATE_NEW_ACCOUNT' => 'Create New Account', 88 | 'CREATE_NEW_LEAD' => 'Create New Lead', 89 | 'CREATE_NEW_CONTACT' => 'Create New Contact', 90 | 'BLOCK_NUMBER' => 'Block Number', 91 | 92 | 93 | ) 94 | ); 95 | 96 | ?> 97 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/language/es_es.lang.php: -------------------------------------------------------------------------------- 1 | array( 35 | 36 | 'ASTERISKLBL_COMING_IN' => 'Llamada entrante', 37 | 'ASTERISKLBL_GOING_OUT' => 'Llamada saliente', 38 | 39 | 'ASTERISKLBL_DENY' => 'Declinar', 40 | 'ASTERISKLBL_OPEN_CONTACT' => 'Abrir contacto', 41 | 'ASTERISKLBL_OPEN_MEMO' => 'Abrir nota', 42 | 43 | 'ASTERISKLBL_PHONE' => 'Teléfono', 44 | 'ASTERISKLBL_NAME' => 'Nombre', 45 | 'ASTERISKLBL_COMPANY' => 'Cuenta', 46 | 47 | 'REQUESTED' => 'Solicitado', 48 | 'PROCEEDING' => 'Procediendo', 49 | 'RINGBACK' => 'Esperando respuesta', 50 | 'INCOMING' => 'Entrante', 51 | 'RINGING' => 'Sonando', 52 | 'CONNECTED' => 'Conectado', 53 | 'DIAL' => 'Llamar', 54 | 'HANGUP' => 'Terminar', 55 | 56 | // Added in v2.2 57 | 'ASTERISKLBL_DURATION' => 'Duracion', 58 | 'ASTERISKLBL_SELECTCONTACT' => 'Seleccionar Contacto', 59 | 'ASTERISKLBL_SELECTACCOUNT' => 'Seleccionar Cuenta', 60 | 'ASTERISKLBL_MULTIPLE_MATCHES' => 'Multiples coincidencias', 61 | 'ASTERISKLBL_CALLERID' => 'CallerID', 62 | 63 | // For asteriskLogger.php SOAP call entries 64 | 'CALL_AUTOMATIC_RECORD' => '** Registro automatico **', 65 | 'CALL_IN_LIMBO' => 'Incompleta', 66 | 'CALL_STATUS_HELD' => 'Realizada', 67 | 'CALL_STATUS_MISSED' => 'Perdida', 68 | 'CALL_NAME_CALL' => 'Llamada', 69 | 'CALL_NAME_MISSED' => 'Llamada perdida', 70 | 'CALL_DESCRIPTION_CALLER_ID' => 'Caller ID', 71 | 'CALL_DESCRIPTION_MISSED' => 'Perdida', 72 | 73 | // V3 Additions 74 | 'CALL_DESCRIPTION_PHONE_NUMBER' => 'Número de telefono', 75 | 'CREATE' => 'Crear', 76 | 'RELATE_TO' => 'Relacionar', 77 | 'BLOCK' => 'Bloquear', 78 | 'SAVE' => 'Guardar', 79 | 'ASTERISKLBL_USER_EXT' => 'Ext de usuario', 80 | 'ASTERISKLBL_INBOUND_EXT' => 'Ext entrante', 81 | 'RELATE_TO_CONTACT' => 'Relacionar Contacto', 82 | 'RELATE_TO_ACCOUNT' => 'Relacionar Cuenta', 83 | 'CREATE_NEW_ACCOUNT' => 'Crear Cuenta', 84 | 'CREATE_NEW_CONTACT' => 'Crear Contacto', 85 | 'BLOCK_NUMBER' => 'Bloquear Número', 86 | ) 87 | ); 88 | 89 | 90 | ?> 91 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/language/ge_ge.lang.php: -------------------------------------------------------------------------------- 1 | array ( 38 | 39 | 'ASTERISKLBL_COMING_IN' => 'Eingehender Anruf', 40 | 'ASTERISKLBL_GOING_OUT' => 'Ausgehender Anruf', 41 | 42 | 'ASTERISKLBL_DENY' => 'Ablehnen', 43 | 'ASTERISKLBL_OPEN_CONTACT' => 'Kontakt öffnen', 44 | 'ASTERISKLBL_OPEN_MEMO' => 'Gesprächsnotiz öffnen', 45 | 46 | 'ASTERISKLBL_PHONE' => 'Telefon', 47 | 'ASTERISKLBL_NAME' => 'Name', 48 | 'ASTERISKLBL_COMPANY' => 'Firma', 49 | 50 | 'REQUESTED' => 'Rufaufbau', 51 | 'PROCEEDING' => 'Rufaufbau', 52 | 'RINGBACK' => 'Warten auf Antwort', 53 | 'INCOMING' => 'Klingelt', 54 | 'RINGING' => 'Klingelt', 55 | 'CONNECTED' => 'Verbunden', 56 | 'DIAL' => 'Klingelt', 57 | 'HANGUP' => 'Hangup', // TODO Translate 58 | 59 | // Added in v2.2 60 | 'ASTERISKLBL_DURATION' => 'Duration', 61 | 'ASTERISKLBL_SELECTCONTACT' => 'Select Contact', 62 | 'ASTERISKLBL_MULTIPLE_MATCHES' => 'Multiple Matches', 63 | 'ASTERISKLBL_CALLERID' => 'CallerID', 64 | 65 | // For asteriskLogger.php SOAP call entries 66 | 'CALL_AUTOMATIC_RECORD' => '** Automatic record **', 67 | 'CALL_IN_LIMBO' => 'In Limbo', 68 | 'CALL_STATUS_HELD' => 'Held', 69 | 'CALL_STATUS_MISSED' => 'Missed', 70 | 'CALL_NAME_CALL' => 'CALL', 71 | 'CALL_NAME_MISSED' => 'Missed Call', 72 | 'CALL_DESCRIPTION_CALLER_ID' => 'Caller ID', 73 | 'CALL_DESCRIPTION_MISSED' => 'Missed/failed call', 74 | 75 | // V3 Additions 76 | 'CALL_DESCRIPTION_PHONE_NUMBER' => 'Phone Number', 77 | 'CREATE' => 'Create', 78 | 'RELATE_TO' => 'Relate', 79 | 'BLOCK' => 'Block', 80 | 'SAVE' => 'Save Memo', 81 | 'ASTERISKLBL_USER_EXT' => 'User Ext', 82 | 'ASTERISKLBL_INBOUND_EXT' => 'Inbound Ext', 83 | ) 84 | ); 85 | 86 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/language/ru_ru.lang.php: -------------------------------------------------------------------------------- 1 | array( 37 | 38 | 'ASTERISKLBL_COMING_IN' => 'Входящий звонок', 39 | 'ASTERISKLBL_GOING_OUT' => 'Исходящий звонок', 40 | 41 | 'ASTERISKLBL_DENY' => 'Отклонить', 42 | 'ASTERISKLBL_OPEN_CONTACT' => 'Открыть контакт', 43 | 'ASTERISKLBL_OPEN_MEMO' => 'Открыть памятку', 44 | 45 | 'ASTERISKLBL_PHONE' => 'Телефон', 46 | 'ASTERISKLBL_NAME' => 'Имя', 47 | 'ASTERISKLBL_COMPANY' => 'Аккаунт', 48 | 49 | 'REQUESTED' => 'Набор номера', 50 | 'PROCEEDING' => 'Набор номера', 51 | 'RINGBACK' => 'Ожидание ответа', 52 | 'INCOMING' => 'Звонок', 53 | 'RINGING' => 'Звонок', 54 | 'CONNECTED' => 'Соединено', 55 | 'DIAL' => 'Звонок', 56 | 'HANGUP' => 'Завершено', 57 | 58 | // Added in v2.2 59 | 'ASTERISKLBL_DURATION' => 'Продолжительность', 60 | 'ASTERISKLBL_SELECTCONTACT' => 'Выберите контакт', 61 | 'ASTERISKLBL_MULTIPLE_MATCHES' => "Несколько совпадений", 62 | 'ASTERISKLBL_CALLERID' => 'CallerID', 63 | 64 | // For asteriskLogger.php SOAP call entries 65 | 'CALL_AUTOMATIC_RECORD' => '** Авто-запись **', 66 | 'CALL_IN_LIMBO' => 'В процессе', 67 | 'CALL_STATUS_HELD' => 'Принят', 68 | 'CALL_STATUS_MISSED' => 'Пропущен', 69 | 'CALL_NAME_CALL' => 'Звонок', 70 | 'CALL_NAME_MISSED' => 'Пропущенный звонок', 71 | 'CALL_DESCRIPTION_CALLER_ID' => 'Номер звонившего', 72 | 'CALL_DESCRIPTION_MISSED' => 'Пропущенный/неудачный звонок', 73 | 74 | 75 | // V3 Additions 76 | 'CALL_DESCRIPTION_PHONE_NUMBER' => 'Phone Number', 77 | 'CREATE' => 'Create', 78 | 'RELATE_TO' => 'Relate', 79 | 'BLOCK' => 'Block', 80 | 'SAVE' => 'Save Memo', 81 | 'ASTERISKLBL_USER_EXT' => 'User Ext', 82 | 'ASTERISKLBL_INBOUND_EXT' => 'Inbound Ext', 83 | ) 84 | ); 85 | 86 | ?> 87 | -------------------------------------------------------------------------------- /SugarModules/modules/Asterisk/language/sl_si.lang.php: -------------------------------------------------------------------------------- 1 | 'Dohodni klic', 36 | 'ASTERISKLBL_GOING_OUT' => 'Odhodni klic', 37 | 38 | 'ASTERISKLBL_DENY' => 'Zavrni', 39 | 'ASTERISKLBL_OPEN_CONTACT' => 'Odpri kontakt', 40 | 'ASTERISKLBL_OPEN_MEMO' => 'Odpri beležko', 41 | 42 | 'ASTERISKLBL_PHONE' => 'Telefon', 43 | 'ASTERISKLBL_NAME' => 'Ime', 44 | 'ASTERISKLBL_COMPANY' => 'Partner', 45 | 46 | 'REQUESTED' => 'Nadaljevanje', 47 | 'PROCEEDING' => 'Nadaljevanje', 48 | 'RINGBACK' => 'Čakanje na odgovor', 49 | 'INCOMING' => 'Zvoni', 50 | 'RINGING' => 'Zvoni', 51 | 'CONNECTED' => 'Povezan', 52 | 'DIAL' => 'Zvoni', 53 | 'HANGUP' => 'Zaključen', 54 | 55 | // Added in v2.2 56 | 'ASTERISKLBL_DURATION' => 'Trajanje', 57 | 'ASTERISKLBL_SELECTCONTACT' => 'Izberi kontakt', 58 | 'ASTERISKLBL_MULTIPLE_MATCHES' => "Več Zadetkov", 59 | 'ASTERISKLBL_CALLERID' => 'ID klicatelja', 60 | 61 | // For asteriskLogger.php SOAP call entries 62 | 'CALL_AUTOMATIC_RECORD' => '** Samodejni zapis **', 63 | 'CALL_IN_LIMBO' => 'V negotovosti', 64 | 'CALL_STATUS_HELD' => 'Izveden', 65 | 'CALL_STATUS_MISSED' => 'Zgrešen', 66 | 'CALL_NAME_CALL' => 'KLIC', 67 | 'CALL_NAME_MISSED' => 'Zgrešen klic', 68 | 'CALL_DESCRIPTION_CALLER_ID' => 'ID klicatelja', 69 | 'CALL_DESCRIPTION_MISSED' => 'Zgrešen/neuspel klic', 70 | 'CALL_DESCRIPTION_PHONE_NUMBER' => 'Telefonska številka' 71 | 72 | ); 73 | 74 | ?> 75 | -------------------------------------------------------------------------------- /SugarModules/modules/Calls/language/en_us.lang.php: -------------------------------------------------------------------------------- 1 | 'CallerId', 5 | 'LBL_ASTERISK_CALLER_ID' => 'CallerId', 6 | 'LBL_ASTERISK_CALL_ID' => 'PBX Call ID', 7 | 'LBL_ASTERISK_RECORDING_BUTTONS' => "Recording", 8 | 'LBL_ASTERISK_INBOUND_EXT' => "Inbound Ext.", 9 | 'LBL_ASTERISK_USER_EXT' => 'User Ext.' 10 | ); 11 | ?> 12 | -------------------------------------------------------------------------------- /SugarModules/modules/Calls/language/ge_ge.lang.php: -------------------------------------------------------------------------------- 1 | 'CallerId', 5 | 'LBL_ASTERISK_CALLER_ID' => 'Telefonnummer', 6 | ); 7 | ?> 8 | -------------------------------------------------------------------------------- /SugarModules/modules/Calls/language/ru_ru.lang.php: -------------------------------------------------------------------------------- 1 | 'CallerId', 5 | 'LBL_ASTERISK_CALLER_ID' => 'Номер телефона', 6 | ); 7 | ?> 8 | -------------------------------------------------------------------------------- /SugarModules/modules/Calls/language_folder_is_only_thing_installed_by_module_loader.txt: -------------------------------------------------------------------------------- 1 | As of yaai v2, just the language entries are used. Metadata and views left for reference. -------------------------------------------------------------------------------- /SugarModules/modules/Calls/metadata/detailviewdefs.php: -------------------------------------------------------------------------------- 1 | 41 | array ( 42 | 'templateMeta' => 43 | array ( 44 | 'form' => 45 | array ( 46 | 'buttons' => 47 | array ( 48 | 0 => 'EDIT', 49 | 1 => 'DUPLICATE', 50 | 2 => 'DELETE', 51 | 3 => 52 | array ( 53 | 'customCode' => '{if $fields.status.value != "Held"} {/if}', 54 | ), 55 | 4 => 56 | array ( 57 | 'customCode' => '{if $fields.status.value != "Held"} {/if}', 58 | ), 59 | ), 60 | ), 61 | 'maxColumns' => '2', 62 | 'widths' => 63 | array ( 64 | 0 => 65 | array ( 66 | 'label' => '10', 67 | 'field' => '30', 68 | ), 69 | 1 => 70 | array ( 71 | 'label' => '10', 72 | 'field' => '30', 73 | ), 74 | ), 75 | 'useTabs' => false, 76 | ), 77 | 'panels' => 78 | array ( 79 | 'lbl_call_information' => 80 | array ( 81 | array ( 82 | array ( 83 | 'name' => 'name', 84 | 'label' => 'LBL_SUBJECT', 85 | ), 86 | 1 => 87 | array ( 88 | 'name' => 'direction', 89 | 'customCode' => '{$fields.direction.options[$fields.direction.value]} {$fields.status.options[$fields.status.value]}', 90 | 'label' => 'LBL_STATUS', 91 | ), 92 | ), 93 | array ( 94 | array ( 95 | 'name' => 'date_start', 96 | 'customCode' => '{$fields.date_start.value} {$fields.time_start.value} ', 97 | 'label' => 'LBL_DATE_TIME', 98 | ), 99 | array ( 100 | 'name' => 'parent_name', 101 | 'customLabel' => '{sugar_translate label=\'LBL_MODULE_NAME\' module=$fields.parent_type.value}', 102 | ), 103 | ), 104 | array ( 105 | array ( 106 | 'name' => 'duration_hours', 107 | 'customCode' => '{$fields.duration_hours.value}{$MOD.LBL_HOURS_ABBREV} {$fields.duration_minutes.value}{$MOD.LBL_MINSS_ABBREV} ', 108 | 'label' => 'LBL_DURATION', 109 | ), 110 | array ( 111 | 'name' => 'reminder_checked', 112 | 'fields' => 113 | array ( 114 | 'reminder_checked', 115 | 'reminder_time', 116 | ), 117 | ), 118 | ), 119 | array ( 120 | array ( 121 | 'name' => 'description', 122 | 'comment' => 'Full text of the note', 123 | 'label' => 'LBL_DESCRIPTION', 124 | ), 125 | ), 126 | ), 127 | 'LBL_PANEL_ASSIGNMENT' => 128 | array ( 129 | array ( 130 | array ( 131 | 'name' => 'assigned_user_name', 132 | 'customCode' => '{$fields.assigned_user_name.value}', 133 | 'label' => 'LBL_ASSIGNED_TO', 134 | ), 135 | ), 136 | array ( 137 | array ( 138 | 'name' => 'date_modified', 139 | 'customCode' => '{$fields.date_modified.value} {$APP.LBL_BY} {$fields.modified_by_name.value} ', 140 | 'label' => 'LBL_DATE_MODIFIED', 141 | ), 142 | array ( 143 | 'name' => 'date_entered', 144 | 'customCode' => '{$fields.date_entered.value} {$APP.LBL_BY} {$fields.created_by_name.value} ', 145 | 'label' => 'LBL_DATE_ENTERED', 146 | ), 147 | ), 148 | ), 149 | ), 150 | ), 151 | ); 152 | ?> 153 | -------------------------------------------------------------------------------- /SugarModules/modules/Calls/metadata/detailviewdefs_onaangetaste module.php: -------------------------------------------------------------------------------- 1 | 5 | array ( 6 | 'templateMeta' => 7 | array ( 8 | 'form' => 9 | array ( 10 | 'buttons' => 11 | array ( 12 | 0 => 'EDIT', 13 | 1 => 'DUPLICATE', 14 | 2 => 'DELETE', 15 | 3 => 16 | array ( 17 | 'customCode' => '{if $fields.status.value != "Held"} {/if}', 18 | ), 19 | 4 => 20 | array ( 21 | 'customCode' => '{if $fields.status.value != "Held"} {/if}', 22 | ), 23 | ), 24 | ), 25 | 'maxColumns' => '2', 26 | 'widths' => 27 | array ( 28 | 0 => 29 | array ( 30 | 'label' => '10', 31 | 'field' => '30', 32 | ), 33 | 1 => 34 | array ( 35 | 'label' => '10', 36 | 'field' => '30', 37 | ), 38 | ), 39 | ), 40 | 'panels' => 41 | array ( 42 | 'default' => 43 | array ( 44 | 0 => 45 | array ( 46 | 0 => 47 | array ( 48 | 'name' => 'name', 49 | 'label' => 'LBL_SUBJECT', 50 | ), 51 | 1 => 52 | array ( 53 | 'name' => 'direction', 54 | 'customCode' => '{$fields.direction.options[$fields.direction.value]} {$fields.status.options[$fields.status.value]}', 55 | 'label' => 'LBL_STATUS', 56 | ), 57 | ), 58 | 1 => 59 | array ( 60 | 0 => 61 | array ( 62 | 'name' => 'date_start', 63 | 'customCode' => '{$fields.date_start.value} {$fields.time_start.value} ', 64 | 'label' => 'LBL_DATE_TIME', 65 | ), 66 | 1 => 67 | array ( 68 | 'name' => 'parent_name', 69 | 'label' => 'LBL_LIST_RELATED_TO', 70 | ), 71 | ), 72 | 2 => 73 | array ( 74 | 0 => 75 | array ( 76 | 'name' => 'duration_hours', 77 | 'customCode' => '{$fields.duration_hours.value}{$MOD.LBL_HOURS_ABBREV} {$fields.duration_minutes.value}{$MOD.LBL_MINSS_ABBREV} ', 78 | 'label' => 'LBL_DURATION', 79 | ), 80 | ), 81 | 3 => 82 | array ( 83 | 0 => 84 | array ( 85 | 'name' => 'date_modified', 86 | 'customCode' => '{$fields.date_modified.value} {$APP.LBL_BY} {$fields.modified_by_name.value} ', 87 | 'label' => 'LBL_DATE_MODIFIED', 88 | ), 89 | 1 => 90 | array ( 91 | 'name' => 'assigned_user_name', 92 | 'customCode' => '{$fields.assigned_user_name.value}', 93 | 'label' => 'LBL_ASSIGNED_TO', 94 | ), 95 | ), 96 | 4 => 97 | array ( 98 | 0 => 99 | array ( 100 | 'name' => 'date_entered', 101 | 'customCode' => '{$fields.date_entered.value} {$APP.LBL_BY} {$fields.created_by_name.value} ', 102 | 'label' => 'LBL_DATE_ENTERED', 103 | ), 104 | ), 105 | 5 => 106 | array ( 107 | 0 => 108 | array ( 109 | 'name' => 'reminder_checked', 110 | 'fields' => 111 | array ( 112 | 0 => 'reminder_checked', 113 | 1 => 'reminder_time', 114 | ), 115 | 'label' => 'LBL_REMINDER', 116 | ), 117 | ), 118 | 6 => 119 | array ( 120 | 0 => 121 | array ( 122 | 'name' => 'description', 123 | 'label' => 'LBL_DESCRIPTION', 124 | ), 125 | 1 => NULL, 126 | ), 127 | 7 => 128 | array ( 129 | 0 => 130 | array ( 131 | 'name' => 'abfr_parts_activities_calls_name', 132 | ), 133 | ), 134 | ), 135 | ), 136 | ), 137 | ); 138 | ?> 139 | -------------------------------------------------------------------------------- /SugarModules/modules/Calls/metadata/listviewdefs.php: -------------------------------------------------------------------------------- 1 | 40 | array ( 41 | 'width' => '1%', 42 | 'label' => 'LBL_LIST_CLOSE', 43 | 'link' => true, 44 | 'sortable' => false, 45 | 'default' => true, 46 | 'related_fields' => 47 | array ( 48 | 0 => 'status', 49 | ), 50 | ), 51 | 'DIRECTION' => 52 | array ( 53 | 'width' => '10%', 54 | 'label' => 'LBL_LIST_DIRECTION', 55 | 'link' => false, 56 | 'default' => true, 57 | ), 58 | 'NAME' => 59 | array ( 60 | 'width' => '40%', 61 | 'label' => 'LBL_LIST_SUBJECT', 62 | 'link' => true, 63 | 'default' => true, 64 | ), 65 | 'ASTERISK_CALLER_ID_C' => 66 | array ( 67 | 'width' => '10%', 68 | 'label' => 'LBL_ASTERISK_CALLER_ID', 69 | 'default' => true, 70 | 'customCode' => '{$ASTERISK_CALLER_ID_C}  ', 71 | ), 72 | 'CONTACT_NAME' => 73 | array ( 74 | 'width' => '20%', 75 | 'label' => 'LBL_LIST_CONTACT', 76 | 'link' => true, 77 | 'id' => 'CONTACT_ID', 78 | 'module' => 'Contacts', 79 | 'default' => true, 80 | 'ACLTag' => 'CONTACT', 81 | ), 82 | 'PARENT_NAME' => 83 | array ( 84 | 'width' => '20%', 85 | 'label' => 'LBL_LIST_RELATED_TO', 86 | 'dynamic_module' => 'PARENT_TYPE', 87 | 'id' => 'PARENT_ID', 88 | 'link' => true, 89 | 'default' => true, 90 | 'sortable' => false, 91 | 'ACLTag' => 'PARENT', 92 | 'related_fields' => 93 | array ( 94 | 0 => 'parent_id', 95 | 1 => 'parent_type', 96 | ), 97 | ), 98 | 'DATE_START' => 99 | array ( 100 | 'width' => '15%', 101 | 'label' => 'LBL_LIST_DATE', 102 | 'link' => false, 103 | 'default' => true, 104 | 'related_fields' => 105 | array ( 106 | 0 => 'time_start', 107 | ), 108 | ), 109 | 'ASSIGNED_USER_NAME' => 110 | array ( 111 | 'width' => '2%', 112 | 'label' => 'LBL_LIST_ASSIGNED_TO_NAME', 113 | 'module' => 'Employees', 114 | 'id' => 'ASSIGNED_USER_ID', 115 | 'default' => true, 116 | ), 117 | 'STATUS' => 118 | array ( 119 | 'width' => '10%', 120 | 'label' => 'LBL_STATUS', 121 | 'link' => false, 122 | 'default' => false, 123 | ), 124 | ); 125 | ?> 126 | -------------------------------------------------------------------------------- /SugarModules/modules/Calls/metadata/listviewdefs_onaangetaste module.php: -------------------------------------------------------------------------------- 1 | 5 | array ( 6 | 'width' => '1%', 7 | 'label' => 'LBL_LIST_CLOSE', 8 | 'link' => true, 9 | 'sortable' => false, 10 | 'default' => true, 11 | 'related_fields' => 12 | array ( 13 | 0 => 'status', 14 | ), 15 | ), 16 | 'DIRECTION' => 17 | array ( 18 | 'width' => '10%', 19 | 'label' => 'LBL_LIST_DIRECTION', 20 | 'link' => false, 21 | 'default' => true, 22 | ), 23 | 'NAME' => 24 | array ( 25 | 'width' => '20%', 26 | 'label' => 'LBL_LIST_SUBJECT', 27 | 'link' => true, 28 | 'default' => true, 29 | ), 30 | 'ASTERISK_CALLER_ID_C' => 31 | array ( 32 | 'width' => '10%', 33 | 'label' => 'LBL_ASTERISK_CALLER_ID', 34 | 'default' => true, 35 | 'customCode' => '{$ASTERISK_CALLER_ID_C}  ', 36 | ), 37 | 'CONTACT_NAME' => 38 | array ( 39 | 'width' => '20%', 40 | 'label' => 'LBL_LIST_CONTACT', 41 | 'link' => true, 42 | 'id' => 'CONTACT_ID', 43 | 'module' => 'Contacts', 44 | 'default' => true, 45 | 'ACLTag' => 'CONTACT', 46 | ), 47 | 'PARENT_NAME' => 48 | array ( 49 | 'width' => '20%', 50 | 'label' => 'LBL_LIST_RELATED_TO', 51 | 'dynamic_module' => 'PARENT_TYPE', 52 | 'id' => 'PARENT_ID', 53 | 'link' => true, 54 | 'default' => true, 55 | 'sortable' => false, 56 | 'ACLTag' => 'PARENT', 57 | 'related_fields' => 58 | array ( 59 | 0 => 'parent_id', 60 | 1 => 'parent_type', 61 | ), 62 | ), 63 | 'DATE_START' => 64 | array ( 65 | 'width' => '15%', 66 | 'label' => 'LBL_LIST_DATE', 67 | 'link' => false, 68 | 'default' => true, 69 | 'related_fields' => 70 | array ( 71 | 0 => 'time_start', 72 | ), 73 | ), 74 | 'ASSIGNED_USER_NAME' => 75 | array ( 76 | 'width' => '2%', 77 | 'label' => 'LBL_LIST_ASSIGNED_TO_NAME', 78 | 'default' => true, 79 | ), 80 | 'STATUS' => 81 | array ( 82 | 'width' => '10%', 83 | 'label' => 'LBL_STATUS', 84 | 'link' => false, 85 | 'default' => false, 86 | ), 87 | ); 88 | ?> 89 | -------------------------------------------------------------------------------- /SugarModules/modules/Calls/views/view.list.php: -------------------------------------------------------------------------------- 1 | 59 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/bg_BG.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/ca_ES.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/cs_CZ.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/da_DK.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/de_DE.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/en_UK.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/en_us.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/es_es.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/et_EE.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/fi_fi.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/fr_FR.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/ge_ge.lang.ext.php: -------------------------------------------------------------------------------- 1 | 'ASTERISK Konfiguration', 44 | // 'LBL_ASTERISK_HOST' => 'Host', 45 | // 'LBL_ASTERISK_PORT' => 'Port', 46 | // 'LBL_ASTERISK_USER' => 'Benutzer', 47 | // 'LBL_ASTERISK_SECRET' => 'Password', 48 | // 'LBL_ASTERISK_PREFIX' => 'Dialout Prefix', 49 | // 'LBL_ASTERISK_CONTEXT' => 'Dial Context', 50 | // 'LBL_ASTERISK_EXPR' => 'Regulärer-Ausdruck um intern nach extern zu bestimmen', 51 | // 'LBL_ASTERISK_EXPR_DESC' => 'Reguläre Ausdrücke siehe PHP Doku', 52 | // 'LBL_ASTERISK_SOAPUSER' => 'Asterisk Soap-Benutzer', 53 | //); 54 | 55 | if (!isset($mod_strings)) { $mod_strings = array(); } 56 | 57 | $mod_strings['LBL_MANAGE_ASTERISK'] = 'ASTERISK Konfiguration'; 58 | $mod_strings['LBL_ASTERISK_HOST'] = 'Asterisk Manager Host'; 59 | $mod_strings['LBL_ASTERISK_PORT'] = 'Asterisk Manager Port'; 60 | $mod_strings['LBL_ASTERISK_USER'] = 'Asterisk Manager Login'; 61 | $mod_strings['LBL_ASTERISK_SECRET'] = 'Asterisk Manager Passwort'; 62 | $mod_strings['LBL_ASTERISK_PREFIX'] = 'Vorwahl für ausgehende Gespräche'; 63 | $mod_strings['LBL_ASTERISK_DIALINPREFIX'] = 'DIALIN PREFFIX'; 64 | $mod_strings['LBL_ASTERISK_CONTEXT'] = 'Asterisk Kontext für ausgehende Gespräche'; 65 | $mod_strings['LBL_ASTERISK_EXPR'] = 'Regulärer Ausdruck für eingehende Gespräche'; 66 | $mod_strings['LBL_ASTERISK_EXPR_DESC'] = 'Regulärer Ausdruck um eingehende von ausgehenden Anrufen zu unterscheiden'; 67 | $mod_strings['LBL_ASTERISK_SOAPUSER'] = 'Asterisk Soap-User'; 68 | 69 | 70 | ?> -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/he_IL.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/hu_HU.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/it_it.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/ja_JP.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/lt_LT.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/nb_NO.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/nl_NL.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/pl_PL.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/pt_PT.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/pt_br.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/ro_RO.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/ru_RU.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/sr_RS.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/sv_SE.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/tr_TR.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/_Ext_(not needed i think)/Language/zh_cn.lang.ext.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/asterisk_config_meta.php: -------------------------------------------------------------------------------- 1 | '', 'section'=>'License'); 8 | 9 | $config_meta['asterisk_host'] = array('default' => '127.0.0.1', 'section'=>'Asterisk Server Settings'); 10 | $config_meta['asterisk_port'] = array('default' => '5038', 'type'=>'int', 'section'=>'Asterisk Server Settings'); 11 | $config_meta['asterisk_user'] = array('default' => 'ami_user', 'section'=>'Asterisk Server Settings'); 12 | $config_meta['asterisk_secret'] = array('default' => 'ami_pass', 'section'=>'Asterisk Server Settings'); 13 | 14 | $config_meta['asterisk_soapuser'] = array('default' => 'admin','section'=>'SugarCRM SOAP Settings' ); 15 | $config_meta['asterisk_soappass'] = array('default' => 'soap_password','section'=>'SugarCRM SOAP Settings'); 16 | 17 | $config_meta['asterisk_prefix'] = array('default' => '', 'section'=>'Call Configuration', 'required'=>'FALSE'); 18 | $config_meta['asterisk_dialinPrefix'] = array('default' => '','section'=>'Call Configuration', 'required'=>'FALSE'); 19 | $config_meta['asterisk_context'] = array('default' => 'from-internal','section'=>'Call Configuration'); 20 | $config_meta['asterisk_expr'] = array('default' => '^(sip\/[1-9][0-9][0-9]?[0-9]?-|Local)','section'=>'Call Configuration'); 21 | $config_meta['asterisk_dialout_channel'] = array('default' => 'SIP/###','section'=>'Call Configuration'); 22 | $config_meta['asterisk_dialin_ext_match'] = array('default' => 'Local\/(?:.*?)(\d{2,10})#?@','section'=>'Call Configuration'); 23 | $config_meta['asterisk_rg_detect_expr'] = array('default'=>"^Local\/RG",'section'=>'Call Configuration'); 24 | $config_meta['asterisk_rg_cell_ring_expr'] = array('default'=>"^Local\/\d{7,10}",'section'=>'Call Configuration'); 25 | $config_meta['asterisk_digits_to_match'] = array('default' => '8', 'section'=>'Call Configuration'); 26 | 27 | $config_meta['asterisk_call_subject_inbound_abbr'] = array('default' => "IBC: ", 'section'=>'Misc'); 28 | $config_meta['asterisk_call_subject_outbound_abbr'] = array('default' => "OBC: ",'section'=>'Misc'); 29 | $config_meta['asterisk_call_subject_max_length'] = array('default' => '50','section'=>'Misc'); 30 | $config_meta['asterisk_listener_poll_rate'] = array('default' => '5000','section'=>'Misc'); 31 | //$config_meta['asterisk_gravatar_enabled'] = array('default' => 'false','section'=>'Misc') ; 32 | $config_meta['asterisk_short_call_status'] = array('default' => "Held",'section'=>'Misc'); 33 | $config_meta['asterisk_hide_call_popups_after_mins'] = array('default' => '60','section'=>'Misc'); 34 | $config_meta['asterisk_jquery_override'] = array('type'=>"bool", 'default' => '0', 'section'=>'Misc'); 35 | $config_meta['asterisk_max_popups'] = array('type'=>"int", 'default' => '5', 'section'=>'Misc'); 36 | $config_meta['asterisk_logger_sql_mode'] = array('type'=>"bool", 'default' => '0', 'section'=>'Misc'); 37 | 38 | $config_meta['asterisk_log_file'] = array('default' => '', 'section'=>'Logging'); 39 | $config_meta['asterisk_event_log_file'] = array('default' => '', 'section'=>'Logging'); 40 | 41 | 42 | $config_meta['asterisk_block_button_enabled'] = array( 'type'=>"bool", 'default' => '0', 'section'=>'Popup UI'); 43 | //$config_meta['asterisk_fop_button_enabled'] = array('type'=>"bool", 'default' => 'false', 'section'=>'Popup UI'); 44 | $config_meta['asterisk_transfer_button_enabled'] = array( 'type'=>"bool", 'default' => '1', 'section'=>'Popup UI'); 45 | $config_meta['asterisk_relate_to_account_enabled'] = array('type'=>"bool", 'default' => '0', 'section'=>'Popup UI'); 46 | $config_meta['asterisk_relate_to_contact_enabled'] = array('type'=>"bool", 'default' => '1', 'section'=>'Popup UI'); 47 | $config_meta['asterisk_create_new_contact_enabled'] = array('type'=>"bool", 'default' => '1', 'section'=>'Popup UI'); 48 | 49 | $config_meta['asterisk_contact_phone_fields'] = array('default' => 'phone_work,phone_home,phone_mobile,phone_other,assistant_phone', 'section' => 'Phone Fields'); 50 | $config_meta['asterisk_account_phone_fields'] = array('default' => 'phone_office,phone_alternate', 'section' => 'Phone Fields'); 51 | 52 | $config_meta['asterisk_callinize_dev'] = array('type'=>"bool", 'default' => '0', 'section' => 'Developer'); 53 | $config_meta['asterisk_callinize_debug'] = array('type'=>"bool", 'default' => '0', 'section' => 'Developer'); 54 | 55 | 56 | 57 | //$config_meta['asterisk_max_popups'] = array('default' => '5', 'section'=>'Popup UI'); 58 | //$config_meta['asterisk_filtered_call_states'] = array('default' => '', 'section'=>'Popup UI'); 59 | //$config_meta['asterisk_window_height'] = array('default' => '', 'section'=>'Popup UI'); -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/asterisk_configurator.php: -------------------------------------------------------------------------------- 1 | $value) { 51 | if (!isset($sugar_config[$key])) { 52 | $sugar_config[$key] = ''; 53 | $GLOBALS['sugar_config'][$key] = ''; 54 | } 55 | } 56 | 57 | $configurator = new Configurator(); 58 | $focus = new Administration(); 59 | 60 | if(!empty($_POST['save'])){ 61 | //set defaults for saving 62 | 63 | foreach ($config_meta as $key => $value) { 64 | // BR Modified so now if empty params come in they aren't required. 65 | if (isset($_REQUEST[$key]) && $_REQUEST[$key] == '') { 66 | if( isset($value['required']) && $value['required'] != "true") { 67 | $_REQUEST[$key] = $value['default']; 68 | } 69 | else { 70 | $_REQUEST[$key] = ''; 71 | } 72 | } 73 | } 74 | 75 | $configurator->saveConfig(); 76 | $focus->saveConfig(); 77 | header('Location: index.php?module=Administration&action=index'); 78 | } 79 | 80 | $focus->retrieveSettings(); 81 | if(!empty($_POST['restore'])){ 82 | $configurator->restoreConfig(); 83 | } 84 | 85 | // Build the $asterisk_config array which stores all the default values used in smart template below if 86 | // they aren't already set 87 | $asterisk_config = array(); 88 | foreach ($config_meta as $key => $value) { 89 | $asterisk_config[$key] = $value['default']; 90 | } 91 | 92 | try { 93 | $statResult = $GLOBALS['db']->query("select count(*) as CallsLogged from calls_cstm where calls_cstm.asterisk_caller_id_c is not NULL"); 94 | $statRow = $GLOBALS['db']->fetchByAssoc($statResult); 95 | $callsLogged = $statRow['CallsLogged']; 96 | } 97 | catch(Exception $ex) { 98 | $callsLogged = "Unknown"; 99 | } 100 | 101 | $licenseSummary = ''; 102 | require_once('include/Sugar_Smarty.php'); 103 | $sugar_smarty = new Sugar_Smarty(); 104 | 105 | $sugar_smarty->assign('MOD', $mod_strings); 106 | $sugar_smarty->assign('APP', $app_strings); 107 | $sugar_smarty->assign('APP_LIST', $app_list_strings); 108 | 109 | $sugar_smarty->assign('config', $configurator->config); 110 | $sugar_smarty->assign('asterisk_config', $asterisk_config); 111 | $sugar_smarty->assign('callsLogged', $callsLogged); 112 | $sugar_smarty->assign('licenseSummary', $licenseSummary); 113 | 114 | $sugar_smarty->assign('error', $configurator->errors); 115 | 116 | $sugar_smarty->display('custom/modules/Configurator/asterisk_configurator.tpl'); 117 | 118 | require_once("include/javascript/javascript.php"); 119 | $javascript = new javascript(); 120 | $javascript->setFormName("ConfigureSettings"); 121 | 122 | foreach ($config_meta as $key => $value) { 123 | $type = "varchar"; 124 | $required = TRUE; 125 | 126 | if( isset($value['required'])) { 127 | $required = $value['required']; 128 | } 129 | if( isset($value['type'])) { 130 | $type = $value['type']; 131 | } 132 | 133 | $javascript->addFieldGeneric($key, $type, $mod_strings['LBL_' . strtoupper($key)], $required, ""); 134 | } 135 | 136 | echo $javascript->getScript(); 137 | 138 | print << 144 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/configuratorGeneratorUtil.php: -------------------------------------------------------------------------------- 1 | asterisk_configurator_table.tpl) 11 | * 3) Look at the asterisk_configurator_table.tpl if any mod_strings aren't defined they'll be listed there. 12 | */ 13 | define('sugarEntry', true); 14 | define('configurator_util', true); 15 | @require_once 'language/en_us.lang.php'; 16 | @require_once 'asterisk_config_meta.php'; 17 | global $config_meta; 18 | global $mod_strings; 19 | 20 | print ""; 21 | sleep(3); 22 | 23 | $columnSmarty=<<<'END' 24 | {$MOD.LBL_@@UPPER@@} 25 | {if !empty($MOD.LBL_@@UPPER@@_DESC)} 26 | [?]: 27 | {/if} 28 | 29 | 30 | {if empty($config.@@NORMAL@@ )} 31 | {assign var='@@NORMAL@@' value=$asterisk_config.@@NORMAL@@} 32 | {else} 33 | {assign var='@@NORMAL@@' value=$config.@@NORMAL@@} 34 | {/if} 35 | 36 | 37 | END; 38 | $columnSmartyBool=<<<'END2' 39 | {$MOD.LBL_@@UPPER@@} 40 | {if !empty($MOD.LBL_@@UPPER@@_DESC)} 41 | [?]: 42 | {/if} 43 | 44 | 45 | 46 | {if empty($config.@@NORMAL@@)} 47 | {assign var='@@NORMAL@@' value=$asterisk_config.@@NORMAL@@} 48 | {if $asterisk_config.@@NORMAL@@ == '1' } 49 | {assign var='isChecked@@NORMAL@@' value='checked'} 50 | {assign var="caseNum@@NORMAL@@" value="Case1a: Config not set, default value = 1"} 51 | {else} 52 | {assign var='isChecked@@NORMAL@@' value=''} 53 | {assign var="caseNum@@NORMAL@@" value="CASE1b: Config not set, using default value = 0"} 54 | {/if} 55 | {else} 56 | {assign var='@@NORMAL@@' value=$config.@@NORMAL@@} 57 | {if $config.@@NORMAL@@ == '1' } 58 | {assign var='isChecked@@NORMAL@@' value='checked'} 59 | {assign var="caseNum@@NORMAL@@" value="CASE2a: Config is set, value = 1"} 60 | {else} 61 | {assign var='isChecked@@NORMAL@@' value=''} 62 | {assign var="caseNum@@NORMAL@@" value="CASE2b: Config is set, value = 0"} 63 | {/if} 64 | {/if} 65 | 66 | 67 | 68 | 69 | END2; 70 | 71 | $i = 0; 72 | $prevSection=''; 73 | foreach ($config_meta as $key => $value) { 74 | $in = $columnSmarty ; 75 | 76 | // Once section changes we insert a new header 77 | if( $value['section'] != $prevSection ) { 78 | $prevSection = $value['section']; 79 | if( $i%2 == 1 ) { 80 | print "   "; 81 | $i++; 82 | } 83 | print "\n\n  

{$value['section']}

\n"; 84 | $sectionHdr = "LBL_ASTERISK_SECTIONHDR_" . strtoupper($value['section']); 85 | if( array_key_exists($sectionHdr, $mod_strings) ) { 86 | print "{$mod_strings[$sectionHdr]}"; 87 | } 88 | } 89 | 90 | if( ($i % 2) == 0) 91 | print "\n\n\n\n"; 92 | 93 | $type = "textbox"; 94 | $checked = ''; 95 | if( isset($value['type'] ) ) { 96 | if( $value['type'] == "bool") { 97 | $type = "checkbox"; // checkbox is too hard to support since it's value isn't submitted when form is posted and it's unchecked! 98 | $in = $columnSmartyBool; 99 | } 100 | else { 101 | $type = $value['type']; 102 | } 103 | } 104 | 105 | $out = str_replace( 106 | array('@@UPPER@@','@@NORMAL@@','@@TYPE@@'), 107 | array(strtoupper($key),$key,$type), 108 | $in); 109 | 110 | print $out . "\n\n"; 111 | 112 | $i++; 113 | } 114 | 115 | if( $i%2 == 1 ) { 116 | print "   "; 117 | } 118 | 119 | //print "\n\n\n -- FOR SugarModules/Configurator/language/en_us.lang.php ------\n\n"; 120 | 121 | $missingCnt = 0; 122 | foreach ($config_meta as $key => $value) { 123 | $msKey = "LBL_" . strtoupper($key); 124 | if( !array_key_exists($msKey, $mod_strings) ) { 125 | print "$" . "mod_strings['" . "LBL_" . strtoupper($key) . "'] = 'TODO DEFINE';" . "\n"; 126 | $missingCnt++; 127 | } 128 | } 129 | if( $missingCnt == 0 ) { 130 | //print "Congrats, all required modstrings for field labels are defined!\n"; 131 | } 132 | else { 133 | print "WARNING: don't forget to define the modstrings above!\n\n"; 134 | } 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/language/ge_ge.lang.php: -------------------------------------------------------------------------------- 1 | 'ASTERISK Konfiguration', 41 | // 'LBL_ASTERISK_HOST' => 'Host', 42 | // 'LBL_ASTERISK_PORT' => 'Port', 43 | // 'LBL_ASTERISK_USER' => 'Benutzer', 44 | // 'LBL_ASTERISK_SECRET' => 'Password', 45 | // 'LBL_ASTERISK_PREFIX' => 'Dialout Prefix', 46 | // 'LBL_ASTERISK_CONTEXT' => 'Dial Context', 47 | // 'LBL_ASTERISK_EXPR' => 'Regulärer-Ausdruck um intern nach extern zu bestimmen', 48 | // 'LBL_ASTERISK_EXPR_DESC' => 'Reguläre Ausdrücke siehe PHP Doku', 49 | // 'LBL_ASTERISK_SOAPUSER' => 'Asterisk Soap-Benutzer', 50 | //); 51 | 52 | if (!isset($mod_strings)) { $mod_strings = array(); } 53 | 54 | $mod_strings['LBL_MANAGE_ASTERISK'] = 'ASTERISK Konfiguration'; 55 | $mod_strings['LBL_ASTERISK_HOST'] = 'Asterisk Manager Host'; 56 | $mod_strings['LBL_ASTERISK_PORT'] = 'Asterisk Manager Port'; 57 | $mod_strings['LBL_ASTERISK_USER'] = 'Asterisk Manager Login'; 58 | $mod_strings['LBL_ASTERISK_SECRET'] = 'Asterisk Manager Passwort'; 59 | $mod_strings['LBL_ASTERISK_PREFIX'] = 'Vorwahl für ausgehende Gespräche'; 60 | $mod_strings['LBL_ASTERISK_CONTEXT'] = 'Asterisk Kontext für ausgehende Gespräche'; 61 | $mod_strings['LBL_ASTERISK_EXPR'] = 'Regulärer Ausdruck für eingehende Gespräche'; 62 | $mod_strings['LBL_ASTERISK_EXPR_DESC'] = 'Regulärer Ausdruck um eingehende von ausgehenden Anrufen zu unterscheiden'; 63 | $mod_strings['LBL_ASTERISK_SOAPUSER'] = 'Asterisk Soap-User'; 64 | 65 | ?> -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/language/ru_ru.lang.php: -------------------------------------------------------------------------------- 1 | 61 | -------------------------------------------------------------------------------- /SugarModules/modules/Configurator/run_configGeneratorUtil.sh: -------------------------------------------------------------------------------- 1 | php configuratorGeneratorUtil.php > asterisk_configurator_table.tpl 2 | 3 | cat asterisk_configurator_table.tpl 4 | 5 | echo "" 6 | echo "^---- Inspect above, if you don't have a needed modstring defined it'll be listed at end of file" -------------------------------------------------------------------------------- /SugarModules/modules/Users/DetailView.html.patch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

5 | 6 | 7 | 10 | 11 | 12 | 15 | 18 | 19 | 20 | 23 | 26 | 27 |
8 |

{MOD.LBL_ASTERISK_OPTIONS_TITLE}

9 |
13 | {MOD.LBL_ASTERISK_EXT}: 14 | 16 | {ASTERISK_EXT_C} 17 |
21 | {MOD.LBL_ASTERISK_EXT_DESC}: 22 | 24 | Asterisk Inbound:_ {ASTERISK_INBOUND_C} _: Asterisk Outbound:_ {ASTERISK_OUTBOUND_C} _: 25 |
28 |

29 | 30 | -------------------------------------------------------------------------------- /SugarModules/modules/Users/EditView.html.patch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
8 |

{MOD.LBL_ASTERISK_OPTIONS_TITLE}

9 |
{MOD.LBL_ASTERISK_EXT}{MOD.LBL_ASTERISK_EXT_DESC}
{MOD.LBL_ASTERISK_INBOUND}{MOD.LBL_ASTERISK_INBOUND_DESC}
{MOD.LBL_ASTERISK_OUTBOUND}{MOD.LBL_ASTERISK_OUTBOUND_DESC}
27 |

28 | 29 | 30 | -------------------------------------------------------------------------------- /SugarModules/modules/Users/language/en_us.lang.php: -------------------------------------------------------------------------------- 1 | 52 | -------------------------------------------------------------------------------- /SugarModules/modules/Users/language/ge_ge.lang.php: -------------------------------------------------------------------------------- 1 | 'Asterisk Nebenstelle', 38 | // 'LBL_ASTERISK_EXT' => 'Asterisk Klappe', 39 | // 'LBL_ASTERISK_EXT_DESC' => 'Telefonrechte im EditView nachsehen :_checked_:=on :_ _:=off', 40 | // 'LBL_ASTERISK_INBOUND' => 'Asterisk eingehende Anrufe 1=on 0=off', 41 | // 'LBL_ASTERISK_OUTBOUND' => 'Asterisk ausgehende Anrufe 1=on 0=off', 42 | // 'LBL_ASTERISK_INBOUND_DESC' => 'Wenn aktiviert, wird der User bei eingehenden Anrufen auf seine Klappe informiert.', 43 | // 'LBL_ASTERISK_OUTBOUND_DESC' => 'Wenn aktiviert, kann der User durch anklicken der Telefonnummer des Kontaktes ausgehende Anrufe platzieren.', 44 | //); 45 | 46 | if (!isset($mod_strings)) { $mod_strings = array(); } 47 | 48 | $mod_strings['LBL_ASTERISK_OPTIONS_TITLE'] = 'Asterisk Nebenstelle'; 49 | $mod_strings['LBL_ASTERISK_EXT'] = 'Asterisk Nebenstelle'; 50 | $mod_strings['LBL_ASTERISK_EXT_DESC'] = 'Zugewiesene Nebenstelle (normalerweise eine 2 oder 3-stellige Nummer)'; 51 | $mod_strings['LBL_ASTERISK_INBOUND'] = 'Anrufbenachrichtigung'; 52 | $mod_strings['LBL_ASTERISK_INBOUND_DESC'] = 'BenutzerIn wird über eingehende Anrufe informiert'; 53 | $mod_strings['LBL_ASTERISK_OUTBOUND'] = 'Magische Wählbuttons'; 54 | $mod_strings['LBL_ASTERISK_OUTBOUND_DESC'] = 'BenutzerIn kann Kontakte mit einem Klick anrufen'; 55 | 56 | ?> 57 | -------------------------------------------------------------------------------- /SugarModules/modules/Users/language/ru_ru.lang.php: -------------------------------------------------------------------------------- 1 | 'Данные пользовател�? ASTERISK', 38 | // 'LBL_ASTERISK_EXT' => '�?омер телефона', 39 | // 'LBL_ASTERISK_EXT_DESC' => 'Rights look in EditView :_checked_:=on :_ _:=off', 40 | // 'LBL_ASTERISK_INBOUND' => 'Asterisk Вход�?щие 1=Включить 0=Выключить', 41 | // 'LBL_ASTERISK_OUTBOUND' => 'Asterisk И�?ход�?щие 1=Включить 0=Выключить', 42 | // 'LBL_ASTERISK_INBOUND_DESC' => 'Е�?ли включено, то пользователь имеет возможно�?ть видеть вход�?щие и и�?ход�?щие звонки', 43 | // 'LBL_ASTERISK_OUTBOUND_DESC' => 'Е�?ли включено, то пользователь имеет возможно�?ть делать и�?ход�?щие звонки нажав на иконку возле номера телефона', 44 | //); 45 | 46 | if (!isset($mod_strings)) { $mod_strings = array(); } 47 | 48 | $mod_strings['LBL_ASTERISK_OPTIONS_TITLE'] = 'Данные пользователя ASTERISK'; 49 | $mod_strings['LBL_ASTERISK_EXT'] = 'Номер телефона'; 50 | $mod_strings['LBL_ASTERISK_EXT_DESC'] = 'Asterisk екстеншен принадлежащий этому пользователю (обычно две\три цифры)'; 51 | $mod_strings['LBL_ASTERISK_INBOUND'] = 'Уведомления о звонках'; 52 | $mod_strings['LBL_ASTERISK_OUTBOUND'] = 'Изображение телефончиков возле номеров телефонов'; 53 | $mod_strings['LBL_ASTERISK_INBOUND_DESC'] = 'Если включено, то пользователь имеет возможность видеть уведомление о входящем\исходящем звонке.'; 54 | $mod_strings['LBL_ASTERISK_OUTBOUND_DESC'] = 'Если включено, то пользоваетль имеет возможность делать исходящие звонки кликом по номеру телефона.'; 55 | 56 | 57 | 58 | ?> 59 | -------------------------------------------------------------------------------- /SugarModules/modules/Users/metadata (unused_delete)/listviewdefs.php: -------------------------------------------------------------------------------- 1 | array( 43 | 'width' => '30', 44 | 'label' => 'LBL_LIST_NAME', 45 | 'link' => true, 46 | 'related_fields' => array('last_name', 'first_name'), 47 | 'orderBy' => 'last_name', 48 | 'default' => true), 49 | 'USER_NAME' => array( 50 | 'width' => '5', 51 | 'label' => 'LBL_USER_NAME', 52 | 'link' => true, 53 | 'default' => true), 54 | 'TITLE' => array( 55 | 'width' => '15', 56 | 'label' => 'LBL_TITLE', 57 | 'link' => true, 58 | 'default' => true), 59 | 'DEPARTMENT' => array( 60 | 'width' => '15', 61 | 'label' => 'LBL_DEPARTMENT', 62 | 'link' => true, 63 | 'default' => true), 64 | 'EMAIL1' => array( 65 | 'width' => '30', 66 | 'sortable' => false, 67 | 'label' => 'LBL_LIST_EMAIL', 68 | 'link' => true, 69 | 'default' => true), 70 | 'PHONE_WORK' => array( 71 | 'width' => '25', 72 | 'label' => 'LBL_LIST_PHONE', 73 | 'link' => true, 74 | 'default' => true), 75 | 'STATUS' => array( 76 | 'width' => '10', 77 | 'label' => 'LBL_STATUS', 78 | 'link' => false, 79 | 'default' => true), 80 | 'IS_ADMIN' => array( 81 | 'width' => '10', 82 | 'label' => 'LBL_ADMIN', 83 | 'link' => false, 84 | 'default' => true), 85 | 'IS_GROUP' => array( 86 | 'width' => '10', 87 | 'label' => 'LBL_LIST_GROUP', 88 | 'link' => true, 89 | 'default' => false), 90 | ); 91 | ?> 92 | -------------------------------------------------------------------------------- /SugarModules/modules/Users/metadata (unused_delete)/listviewdefs_onaangetaste module.php: -------------------------------------------------------------------------------- 1 | 5 | array ( 6 | 'width' => '30%', 7 | 'label' => 'LBL_LIST_NAME', 8 | 'link' => true, 9 | 'related_fields' => 10 | array ( 11 | 0 => 'last_name', 12 | 1 => 'first_name', 13 | ), 14 | 'orderBy' => 'last_name', 15 | 'default' => true, 16 | ), 17 | 'USER_NAME' => 18 | array ( 19 | 'width' => '5%', 20 | 'label' => 'LBL_USER_NAME', 21 | 'link' => true, 22 | 'default' => true, 23 | ), 24 | 'TITLE' => 25 | array ( 26 | 'width' => '15%', 27 | 'label' => 'LBL_TITLE', 28 | 'link' => true, 29 | 'default' => true, 30 | ), 31 | 'DEPARTMENT' => 32 | array ( 33 | 'width' => '15%', 34 | 'label' => 'LBL_DEPARTMENT', 35 | 'link' => true, 36 | 'default' => true, 37 | ), 38 | 'EMAIL1' => 39 | array ( 40 | 'width' => '30%', 41 | 'sortable' => false, 42 | 'label' => 'LBL_LIST_EMAIL', 43 | 'link' => true, 44 | 'default' => true, 45 | ), 46 | 'PHONE_WORK' => 47 | array ( 48 | 'width' => '25%', 49 | 'label' => 'LBL_LIST_PHONE', 50 | 'link' => true, 51 | 'default' => true, 52 | ), 53 | 'STATUS' => 54 | array ( 55 | 'width' => '10%', 56 | 'label' => 'LBL_STATUS', 57 | 'link' => false, 58 | 'default' => true, 59 | ), 60 | 'IS_ADMIN' => 61 | array ( 62 | 'width' => '10%', 63 | 'label' => 'LBL_ADMIN', 64 | 'link' => false, 65 | 'default' => true, 66 | ), 67 | 'IS_GROUP' => 68 | array ( 69 | 'width' => '10%', 70 | 'label' => 'LBL_LIST_GROUP', 71 | 'link' => true, 72 | 'default' => false, 73 | ), 74 | ); 75 | ?> 76 | -------------------------------------------------------------------------------- /SugarModules/modules/Users/studio.php: -------------------------------------------------------------------------------- 1 | array( 4 | 'template'=>'xtpl', 5 | 'template_file'=>'custom/modules/Users/DetailView.html', 6 | 'php_file'=>'custom/modules/Users/DetailView.php', 7 | 'type'=>'DetailView', 8 | ), 9 | 'LBL_EDITVIEW'=>array( 10 | 'template'=>'xtpl', 11 | 'template_file'=>'custom/modules/Users/EditView.html', 12 | 'php_file'=>'custom/modules/Users/EditView.php', 13 | 'type'=>'EditView', 14 | ), 15 | 'LBL_LISTVIEW'=>array( 16 | 'template'=>'listview', 17 | 'meta_file'=>'custom/modules/Users/metadata/listviewdefs.php', 18 | 'type'=>'ListView', 19 | ), 20 | 'LBL_SEARCHFORM'=>array( 21 | 'template'=>'xtpl', 22 | 'template_file'=>'custom/modules/Users/SearchForm.html', 23 | 'php_file'=>'custom/modules/Users/ListView.php', 24 | 'type'=>'SearchForm', 25 | ), 26 | 27 | ); 28 | ?> -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Accounts/language_folder_is_only_thing_installed_by_module_loader.txt: -------------------------------------------------------------------------------- 1 | As of yaai v2, just the language entries are used. Metadata and views left for reference. -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Accounts/metadata/detailviewdefs.non aangepaste connecter.php: -------------------------------------------------------------------------------- 1 | array('form' => array('buttons'=>array('EDIT', 'DUPLICATE', 'DELETE', 'FIND_DUPLICATES')), 33 | 'maxColumns' => '2', 34 | 'widths' => array( 35 | array('label' => '10', 'field' => '30'), 36 | array('label' => '10', 'field' => '30') 37 | ), 38 | 'includes'=> array( 39 | array('file'=>'modules/Accounts/Account.js'), 40 | ), 41 | ), 42 | 'panels' => array( 43 | array('name', 44 | array ( 45 | 'name' => 'phone_office', 46 | 'customCode' => '{$fields.phone_office.value}   ' 47 | ) 48 | ), 49 | array(array('name'=>'website', 'type'=>'link'), 'phone_fax'), 50 | array('ticker_symbol', 51 | array(' 52 | name'=>'phone_alternate', 53 | 'label'=>'LBL_OTHER_PHONE', 54 | 'customCode' => '{$fields.phone_alternate.value}   ' 55 | ) 56 | ), 57 | array('parent_name', 'employees'), 58 | array('ownership', 'rating'), 59 | array('industry', 'sic_code'), 60 | array('account_type', 'annual_revenue'), 61 | array( 62 | array('name'=>'date_modified', 'label'=>'LBL_DATE_MODIFIED', 'customCode'=>'{$fields.date_modified.value} {$APP.LBL_BY} {$fields.modified_by_name.value}')), 63 | array(array('name'=>'assigned_user_name', 'label'=>'LBL_ASSIGNED_TO'), 64 | array('name'=>'date_entered', 'customCode'=>'{$fields.date_entered.value} {$APP.LBL_BY} {$fields.created_by_name.value}')), 65 | array ( 66 | array ( 67 | 'name' => 'billing_address_street', 68 | 'label'=> 'LBL_BILLING_ADDRESS', 69 | 'type' => 'address', 70 | 'displayParams'=>array('key'=>'billing'), 71 | ), 72 | array ( 73 | 'name' => 'shipping_address_street', 74 | 'label'=> 'LBL_SHIPPING_ADDRESS', 75 | 'type' => 'address', 76 | 'displayParams'=>array('key'=>'shipping'), 77 | ), 78 | ), 79 | 80 | array('description'), 81 | array('email1'), 82 | ), 83 | 84 | 85 | ); 86 | ?> 87 | -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Accounts/metadata/listviewdefs.non aangepaste conncetor.php: -------------------------------------------------------------------------------- 1 | array( 35 | 'width' => '40', 36 | 'label' => 'LBL_LIST_ACCOUNT_NAME', 37 | 'link' => true, 38 | 'default' => true), 39 | 'BILLING_ADDRESS_CITY' => array( 40 | 'width' => '10', 41 | 'label' => 'LBL_LIST_CITY', 42 | 'default' => true 43 | ), 44 | 'PHONE_OFFICE' => array( 45 | 'width' => '10', 46 | 'label' => 'LBL_LIST_PHONE', 47 | 'default' => true, 48 | 'customCode' => '{$PHONE_OFFICE}  ', 49 | ), 50 | 'ACCOUNT_TYPE' => array( 51 | 'width' => '10', 52 | 'label' => 'LBL_TYPE'), 53 | 'INDUSTRY' => array( 54 | 'width' => '10', 55 | 'label' => 'LBL_INDUSTRY'), 56 | 'ANNUAL_REVENUE' => array( 57 | 'width' => '10', 58 | 'label' => 'LBL_ANNUAL_REVENUE'), 59 | 'PHONE_FAX' => array( 60 | 'width' => '10', 61 | 'label' => 'LBL_PHONE_FAX'), 62 | 'BILLING_ADDRESS_STREET' => array( 63 | 'width' => '15', 64 | 'label' => 'LBL_BILLING_ADDRESS_STREET'), 65 | 'BILLING_ADDRESS_STATE' => array( 66 | 'width' => '7', 67 | 'label' => 'LBL_BILLING_ADDRESS_STATE'), 68 | 'BILLING_ADDRESS_POSTALCODE' => array( 69 | 'width' => '10', 70 | 'label' => 'LBL_BILLING_ADDRESS_POSTALCODE'), 71 | 'BILLING_ADDRESS_COUNTRY' => array( 72 | 'width' => '10', 73 | 'label' => 'LBL_BILLING_ADDRESS_COUNTRY'), 74 | 'SHIPPING_ADDRESS_STREET' => array( 75 | 'width' => '15', 76 | 'label' => 'LBL_SHIPPING_ADDRESS_STREET'), 77 | 'SHIPPING_ADDRESS_CITY' => array( 78 | 'width' => '10', 79 | 'label' => 'LBL_SHIPPING_ADDRESS_CITY'), 80 | 'SHIPPING_ADDRESS_STATE' => array( 81 | 'width' => '7', 82 | 'label' => 'LBL_SHIPPING_ADDRESS_STATE'), 83 | 'SHIPPING_ADDRESS_POSTALCODE' => array( 84 | 'width' => '10', 85 | 'label' => 'LBL_SHIPPING_ADDRESS_POSTALCODE'), 86 | 'SHIPPING_ADDRESS_COUNTRY' => array( 87 | 'width' => '10', 88 | 'label' => 'LBL_SHIPPING_ADDRESS_COUNTRY'), 89 | 'RATING' => array( 90 | 'width' => '10', 91 | 'label' => 'LBL_RATING'), 92 | 'PHONE_ALTERNATE' => array( 93 | 'width' => '10', 94 | 'label' => 'LBL_PHONE_ALT', 95 | 'customCode' => '{$PHONE_ALTERNATE}  '), 96 | 'WEBSITE' => array( 97 | 'width' => '10', 98 | 'label' => 'LBL_WEBSITE'), 99 | 'OWNERSHIP' => array( 100 | 'width' => '10', 101 | 'label' => 'LBL_OWNERSHIP'), 102 | 'EMPLOYEES' => array( 103 | 'width' => '10', 104 | 'label' => 'LBL_EMPLOYEES'), 105 | 'SIC_CODE' => array( 106 | 'width' => '10', 107 | 'label' => 'LBL_SIC_CODE'), 108 | 'TICKER_SYMBOL' => array( 109 | 'width' => '10', 110 | 'label' => 'LBL_TICKER_SYMBOL'), 111 | 'DATE_MODIFIED' => array( 112 | 'width' => '5', 113 | 'label' => 'LBL_DATE_MODIFIED'), 114 | 'DATE_ENTERED' => array( 115 | 'width' => '5', 116 | 'label' => 'LBL_DATE_ENTERED'), 117 | 'CREATED_BY_NAME' => array( 118 | 'width' => '10', 119 | 'label' => 'LBL_CREATED'), 120 | 121 | 122 | 123 | 124 | 125 | 126 | 'ASSIGNED_USER_NAME' => array( 127 | 'width' => '2', 128 | 'label' => 'LBL_LIST_ASSIGNED_USER', 129 | 'default' => true), 130 | 'MODIFIED_BY_NAME' => array( 131 | 'width' => '2', 132 | 'label' => 'LBL_MODIFIED') 133 | ); 134 | ?> 135 | -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Calls/language/en_us.lang.php: -------------------------------------------------------------------------------- 1 | 'CallerId', 5 | 'LBL_ASTERISK_CALLER_ID' => 'CallerId', 6 | ); 7 | ?> 8 | -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Calls/language/ge_ge.lang.php: -------------------------------------------------------------------------------- 1 | 'CallerId', 5 | 'LBL_ASTERISK_CALLER_ID' => 'Telefonnummer', 6 | ); 7 | ?> 8 | -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Calls/language/ru_ru.lang.php: -------------------------------------------------------------------------------- 1 | 'CallerId', 5 | 'LBL_ASTERISK_CALLER_ID' => 'Номер телефона', 6 | ); 7 | ?> 8 | -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Calls/metadata/detailviewdefs_onaangetaste module.php: -------------------------------------------------------------------------------- 1 | 5 | array ( 6 | 'templateMeta' => 7 | array ( 8 | 'form' => 9 | array ( 10 | 'buttons' => 11 | array ( 12 | 0 => 'EDIT', 13 | 1 => 'DUPLICATE', 14 | 2 => 'DELETE', 15 | 3 => 16 | array ( 17 | 'customCode' => '{if $fields.status.value != "Held"} {/if}', 18 | ), 19 | 4 => 20 | array ( 21 | 'customCode' => '{if $fields.status.value != "Held"} {/if}', 22 | ), 23 | ), 24 | ), 25 | 'maxColumns' => '2', 26 | 'widths' => 27 | array ( 28 | 0 => 29 | array ( 30 | 'label' => '10', 31 | 'field' => '30', 32 | ), 33 | 1 => 34 | array ( 35 | 'label' => '10', 36 | 'field' => '30', 37 | ), 38 | ), 39 | ), 40 | 'panels' => 41 | array ( 42 | 'default' => 43 | array ( 44 | 0 => 45 | array ( 46 | 0 => 47 | array ( 48 | 'name' => 'name', 49 | 'label' => 'LBL_SUBJECT', 50 | ), 51 | 1 => 52 | array ( 53 | 'name' => 'direction', 54 | 'customCode' => '{$fields.direction.options[$fields.direction.value]} {$fields.status.options[$fields.status.value]}', 55 | 'label' => 'LBL_STATUS', 56 | ), 57 | ), 58 | 1 => 59 | array ( 60 | 0 => 61 | array ( 62 | 'name' => 'date_start', 63 | 'customCode' => '{$fields.date_start.value} {$fields.time_start.value} ', 64 | 'label' => 'LBL_DATE_TIME', 65 | ), 66 | 1 => 67 | array ( 68 | 'name' => 'parent_name', 69 | 'label' => 'LBL_LIST_RELATED_TO', 70 | ), 71 | ), 72 | 2 => 73 | array ( 74 | 0 => 75 | array ( 76 | 'name' => 'duration_hours', 77 | 'customCode' => '{$fields.duration_hours.value}{$MOD.LBL_HOURS_ABBREV} {$fields.duration_minutes.value}{$MOD.LBL_MINSS_ABBREV} ', 78 | 'label' => 'LBL_DURATION', 79 | ), 80 | ), 81 | 3 => 82 | array ( 83 | 0 => 84 | array ( 85 | 'name' => 'date_modified', 86 | 'customCode' => '{$fields.date_modified.value} {$APP.LBL_BY} {$fields.modified_by_name.value} ', 87 | 'label' => 'LBL_DATE_MODIFIED', 88 | ), 89 | 1 => 90 | array ( 91 | 'name' => 'assigned_user_name', 92 | 'customCode' => '{$fields.assigned_user_name.value}', 93 | 'label' => 'LBL_ASSIGNED_TO', 94 | ), 95 | ), 96 | 4 => 97 | array ( 98 | 0 => 99 | array ( 100 | 'name' => 'date_entered', 101 | 'customCode' => '{$fields.date_entered.value} {$APP.LBL_BY} {$fields.created_by_name.value} ', 102 | 'label' => 'LBL_DATE_ENTERED', 103 | ), 104 | ), 105 | 5 => 106 | array ( 107 | 0 => 108 | array ( 109 | 'name' => 'reminder_checked', 110 | 'fields' => 111 | array ( 112 | 0 => 'reminder_checked', 113 | 1 => 'reminder_time', 114 | ), 115 | 'label' => 'LBL_REMINDER', 116 | ), 117 | ), 118 | 6 => 119 | array ( 120 | 0 => 121 | array ( 122 | 'name' => 'description', 123 | 'label' => 'LBL_DESCRIPTION', 124 | ), 125 | 1 => NULL, 126 | ), 127 | 7 => 128 | array ( 129 | 0 => 130 | array ( 131 | 'name' => 'abfr_parts_activities_calls_name', 132 | ), 133 | ), 134 | ), 135 | ), 136 | ), 137 | ); 138 | ?> 139 | -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Calls/metadata/listviewdefs.php: -------------------------------------------------------------------------------- 1 | 40 | array ( 41 | 'width' => '1%', 42 | 'label' => 'LBL_LIST_CLOSE', 43 | 'link' => true, 44 | 'sortable' => false, 45 | 'default' => true, 46 | 'related_fields' => 47 | array ( 48 | 0 => 'status', 49 | ), 50 | ), 51 | 'DIRECTION' => 52 | array ( 53 | 'width' => '10%', 54 | 'label' => 'LBL_LIST_DIRECTION', 55 | 'link' => false, 56 | 'default' => true, 57 | ), 58 | 'NAME' => 59 | array ( 60 | 'width' => '40%', 61 | 'label' => 'LBL_LIST_SUBJECT', 62 | 'link' => true, 63 | 'default' => true, 64 | ), 65 | 'ASTERISK_CALLER_ID_C' => 66 | array ( 67 | 'width' => '10%', 68 | 'label' => 'LBL_ASTERISK_CALLER_ID', 69 | 'default' => true, 70 | 'customCode' => '{$ASTERISK_CALLER_ID_C}  ', 71 | ), 72 | 'CONTACT_NAME' => 73 | array ( 74 | 'width' => '20%', 75 | 'label' => 'LBL_LIST_CONTACT', 76 | 'link' => true, 77 | 'id' => 'CONTACT_ID', 78 | 'module' => 'Contacts', 79 | 'default' => true, 80 | 'ACLTag' => 'CONTACT', 81 | ), 82 | 'PARENT_NAME' => 83 | array ( 84 | 'width' => '20%', 85 | 'label' => 'LBL_LIST_RELATED_TO', 86 | 'dynamic_module' => 'PARENT_TYPE', 87 | 'id' => 'PARENT_ID', 88 | 'link' => true, 89 | 'default' => true, 90 | 'sortable' => false, 91 | 'ACLTag' => 'PARENT', 92 | 'related_fields' => 93 | array ( 94 | 0 => 'parent_id', 95 | 1 => 'parent_type', 96 | ), 97 | ), 98 | 'DATE_START' => 99 | array ( 100 | 'width' => '15%', 101 | 'label' => 'LBL_LIST_DATE', 102 | 'link' => false, 103 | 'default' => true, 104 | 'related_fields' => 105 | array ( 106 | 0 => 'time_start', 107 | ), 108 | ), 109 | 'ASSIGNED_USER_NAME' => 110 | array ( 111 | 'width' => '2%', 112 | 'label' => 'LBL_LIST_ASSIGNED_TO_NAME', 113 | 'module' => 'Employees', 114 | 'id' => 'ASSIGNED_USER_ID', 115 | 'default' => true, 116 | ), 117 | 'STATUS' => 118 | array ( 119 | 'width' => '10%', 120 | 'label' => 'LBL_STATUS', 121 | 'link' => false, 122 | 'default' => false, 123 | ), 124 | ); 125 | ?> 126 | -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Calls/metadata/listviewdefs_onaangetaste module.php: -------------------------------------------------------------------------------- 1 | 5 | array ( 6 | 'width' => '1%', 7 | 'label' => 'LBL_LIST_CLOSE', 8 | 'link' => true, 9 | 'sortable' => false, 10 | 'default' => true, 11 | 'related_fields' => 12 | array ( 13 | 0 => 'status', 14 | ), 15 | ), 16 | 'DIRECTION' => 17 | array ( 18 | 'width' => '10%', 19 | 'label' => 'LBL_LIST_DIRECTION', 20 | 'link' => false, 21 | 'default' => true, 22 | ), 23 | 'NAME' => 24 | array ( 25 | 'width' => '20%', 26 | 'label' => 'LBL_LIST_SUBJECT', 27 | 'link' => true, 28 | 'default' => true, 29 | ), 30 | 'ASTERISK_CALLER_ID_C' => 31 | array ( 32 | 'width' => '10%', 33 | 'label' => 'LBL_ASTERISK_CALLER_ID', 34 | 'default' => true, 35 | 'customCode' => '{$ASTERISK_CALLER_ID_C}  ', 36 | ), 37 | 'CONTACT_NAME' => 38 | array ( 39 | 'width' => '20%', 40 | 'label' => 'LBL_LIST_CONTACT', 41 | 'link' => true, 42 | 'id' => 'CONTACT_ID', 43 | 'module' => 'Contacts', 44 | 'default' => true, 45 | 'ACLTag' => 'CONTACT', 46 | ), 47 | 'PARENT_NAME' => 48 | array ( 49 | 'width' => '20%', 50 | 'label' => 'LBL_LIST_RELATED_TO', 51 | 'dynamic_module' => 'PARENT_TYPE', 52 | 'id' => 'PARENT_ID', 53 | 'link' => true, 54 | 'default' => true, 55 | 'sortable' => false, 56 | 'ACLTag' => 'PARENT', 57 | 'related_fields' => 58 | array ( 59 | 0 => 'parent_id', 60 | 1 => 'parent_type', 61 | ), 62 | ), 63 | 'DATE_START' => 64 | array ( 65 | 'width' => '15%', 66 | 'label' => 'LBL_LIST_DATE', 67 | 'link' => false, 68 | 'default' => true, 69 | 'related_fields' => 70 | array ( 71 | 0 => 'time_start', 72 | ), 73 | ), 74 | 'ASSIGNED_USER_NAME' => 75 | array ( 76 | 'width' => '2%', 77 | 'label' => 'LBL_LIST_ASSIGNED_TO_NAME', 78 | 'default' => true, 79 | ), 80 | 'STATUS' => 81 | array ( 82 | 'width' => '10%', 83 | 'label' => 'LBL_STATUS', 84 | 'link' => false, 85 | 'default' => false, 86 | ), 87 | ); 88 | ?> 89 | -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Calls/views/view.list.php: -------------------------------------------------------------------------------- 1 | 59 | -------------------------------------------------------------------------------- /SugarModules/modules/_Archive/Contacts/metadata/listviewdefs.php: -------------------------------------------------------------------------------- 1 | 5 | array ( 6 | 'width' => '20%', 7 | 'label' => 'LBL_LIST_NAME', 8 | 'link' => true, 9 | 'contextMenu' => 10 | array ( 11 | 'objectType' => 'sugarPerson', 12 | 'metaData' => 13 | array ( 14 | 'contact_id' => '{$ID}', 15 | 'module' => 'Contacts', 16 | 'return_action' => 'ListView', 17 | 'contact_name' => '{$FULL_NAME}', 18 | 'parent_id' => '{$ACCOUNT_ID}', 19 | 'parent_name' => '{$ACCOUNT_NAME}', 20 | 'return_module' => 'Contacts', 21 | 'parent_type' => 'Account', 22 | 'notes_parent_type' => 'Account', 23 | ), 24 | ), 25 | 'orderBy' => 'name', 26 | 'default' => true, 27 | 'related_fields' => 28 | array ( 29 | 0 => 'first_name', 30 | 1 => 'last_name', 31 | 2 => 'salutation', 32 | 3 => 'account_name', 33 | 4 => 'account_id', 34 | ), 35 | ), 36 | 'TITLE' => 37 | array ( 38 | 'width' => '15%', 39 | 'label' => 'LBL_LIST_TITLE', 40 | 'default' => true, 41 | ), 42 | 'ACCOUNT_NAME' => 43 | array ( 44 | 'width' => '34%', 45 | 'label' => 'LBL_LIST_ACCOUNT_NAME', 46 | 'module' => 'Accounts', 47 | 'id' => 'ACCOUNT_ID', 48 | 'link' => true, 49 | 'contextMenu' => 50 | array ( 51 | 'objectType' => 'sugarAccount', 52 | 'metaData' => 53 | array ( 54 | 'return_module' => 'Contacts', 55 | 'return_action' => 'ListView', 56 | 'module' => 'Accounts', 57 | 'parent_id' => '{$ACCOUNT_ID}', 58 | 'parent_name' => '{$ACCOUNT_NAME}', 59 | 'account_id' => '{$ACCOUNT_ID}', 60 | 'account_name' => '{$ACCOUNT_NAME}', 61 | ), 62 | ), 63 | 'default' => true, 64 | 'sortable' => true, 65 | 'ACLTag' => 'ACCOUNT', 66 | 'related_fields' => 67 | array ( 68 | 0 => 'account_id', 69 | ), 70 | ), 71 | 'EMAIL1' => 72 | array ( 73 | 'width' => '15%', 74 | 'label' => 'LBL_LIST_EMAIL_ADDRESS', 75 | 'sortable' => false, 76 | 'link' => true, 77 | 'customCode' => '{$EMAIL1_LINK}{$EMAIL1}', 78 | 'default' => true, 79 | ), 80 | 'PHONE_WORK' => 81 | array ( 82 | 'width' => '15%', 83 | 'label' => 'LBL_OFFICE_PHONE', 84 | 'customCode' => '{$PHONE_WORK}  ', 85 | 'default' => true, 86 | ), 87 | 'ASSIGNED_USER_NAME' => 88 | array ( 89 | 'width' => '10%', 90 | 'label' => 'LBL_LIST_ASSIGNED_USER', 91 | 'module' => 'Employees', 92 | 'id' => 'ASSIGNED_USER_ID', 93 | 'default' => true, 94 | ), 95 | 'DEPARTMENT' => 96 | array ( 97 | 'width' => '10%', 98 | 'label' => 'LBL_DEPARTMENT', 99 | 'default' => false, 100 | ), 101 | 'DO_NOT_CALL' => 102 | array ( 103 | 'width' => '10%', 104 | 'label' => 'LBL_DO_NOT_CALL', 105 | 'default' => false, 106 | ), 107 | 'PHONE_HOME' => 108 | array ( 109 | 'width' => '10%', 110 | 'label' => 'LBL_HOME_PHONE', 111 | 'default' => false, 112 | ), 113 | 'PHONE_MOBILE' => 114 | array ( 115 | 'width' => '10%', 116 | 'label' => 'LBL_MOBILE_PHONE', 117 | 'customCode' => '{$PHONE_MOBILE}  ', 118 | 'default' => false, 119 | ), 120 | 'PHONE_OTHER' => 121 | array ( 122 | 'width' => '10%', 123 | 'label' => 'LBL_OTHER_PHONE', 124 | 'default' => false, 125 | ), 126 | 'PHONE_FAX' => 127 | array ( 128 | 'width' => '10%', 129 | 'label' => 'LBL_FAX_PHONE', 130 | 'default' => false, 131 | ), 132 | 'EMAIL2' => 133 | array ( 134 | 'width' => '15%', 135 | 'label' => 'LBL_LIST_EMAIL_ADDRESS', 136 | 'sortable' => false, 137 | 'customCode' => '{$EMAIL2_LINK}{$EMAIL2}', 138 | 'default' => false, 139 | ), 140 | 'PRIMARY_ADDRESS_STREET' => 141 | array ( 142 | 'width' => '10%', 143 | 'label' => 'LBL_PRIMARY_ADDRESS_STREET', 144 | 'default' => false, 145 | ), 146 | 'PRIMARY_ADDRESS_CITY' => 147 | array ( 148 | 'width' => '10%', 149 | 'label' => 'LBL_PRIMARY_ADDRESS_CITY', 150 | 'default' => false, 151 | ), 152 | 'PRIMARY_ADDRESS_STATE' => 153 | array ( 154 | 'width' => '10%', 155 | 'label' => 'LBL_PRIMARY_ADDRESS_STATE', 156 | 'default' => false, 157 | ), 158 | 'PRIMARY_ADDRESS_POSTALCODE' => 159 | array ( 160 | 'width' => '10%', 161 | 'label' => 'LBL_PRIMARY_ADDRESS_POSTALCODE', 162 | 'default' => false, 163 | ), 164 | 'ALT_ADDRESS_COUNTRY' => 165 | array ( 166 | 'width' => '10%', 167 | 'label' => 'LBL_ALT_ADDRESS_COUNTRY', 168 | 'default' => false, 169 | ), 170 | 'ALT_ADDRESS_STREET' => 171 | array ( 172 | 'width' => '10%', 173 | 'label' => 'LBL_ALT_ADDRESS_STREET', 174 | 'default' => false, 175 | ), 176 | 'ALT_ADDRESS_CITY' => 177 | array ( 178 | 'width' => '10%', 179 | 'label' => 'LBL_ALT_ADDRESS_CITY', 180 | 'default' => false, 181 | ), 182 | 'ALT_ADDRESS_STATE' => 183 | array ( 184 | 'width' => '10%', 185 | 'label' => 'LBL_ALT_ADDRESS_STATE', 186 | 'default' => false, 187 | ), 188 | 'ALT_ADDRESS_POSTALCODE' => 189 | array ( 190 | 'width' => '10%', 191 | 'label' => 'LBL_ALT_ADDRESS_POSTALCODE', 192 | 'default' => false, 193 | ), 194 | 'DATE_ENTERED' => 195 | array ( 196 | 'width' => '10%', 197 | 'label' => 'LBL_DATE_ENTERED', 198 | 'default' => false, 199 | ), 200 | 'CREATED_BY_NAME' => 201 | array ( 202 | 'width' => '10%', 203 | 'label' => 'LBL_CREATED', 204 | 'default' => false, 205 | ), 206 | 'MODIFIED_BY_NAME' => 207 | array ( 208 | 'width' => '10%', 209 | 'label' => 'LBL_MODIFIED', 210 | 'default' => false, 211 | ), 212 | 'SYNC_CONTACT' => 213 | array ( 214 | 'type' => 'bool', 215 | 'label' => 'LBL_SYNC_CONTACT', 216 | 'width' => '10%', 217 | 'default' => false, 218 | 'sortable' => false, 219 | ), 220 | ); 221 | ?> 222 | -------------------------------------------------------------------------------- /SugarModules/service/callinize/SugarWebServiceImplv4_1_callinize.php: -------------------------------------------------------------------------------- 1 | info('Begin: SugarWebServiceImplv4_1_custom->example_method'); 28 | $error = new SoapError(); 29 | $retVal = array(); 30 | 31 | 32 | //authenticate 33 | if (!self::$helperObject->checkSessionAndModuleAccess($session, 'invalid_session', '', '', '', $error)) 34 | { 35 | $GLOBALS['log']->info('End: SugarWebServiceImplv4_1_custom->example_method.'); 36 | //$retVal['status'] = "ERROR: Invalid Session ID"; 37 | //$retVal['data'] = ''; 38 | } 39 | else { 40 | $retVal = find_beans($phone_number,$module_order, $stop_on_find,$GLOBALS['current_user'] ); 41 | } 42 | 43 | 44 | return $retVal;//$session . " oid: " . $oid; 45 | } 46 | 47 | function originate_call($session, $from_extension, $toNumber) { 48 | $GLOBALS['log']->info('Begin: SugarWebServiceImplv4_1_custom->example_method'); 49 | $error = new SoapError(); 50 | $retVal = array(); 51 | 52 | 53 | //authenticate 54 | if (!self::$helperObject->checkSessionAndModuleAccess($session, 'invalid_session', '', '', '', $error)) 55 | { 56 | $GLOBALS['log']->info('End: SugarWebServiceImplv4_1_custom->example_method.'); 57 | //$retVal['status'] = "ERROR: Invalid Session ID"; 58 | //$retVal['data'] = ''; 59 | } 60 | else { 61 | require_once 'custom/modules/Asterisk/include/callinize_db.php"'; 62 | originate($from_extension, $toNumber); 63 | } 64 | 65 | 66 | return $retVal;//$session . " oid: " . $oid; 67 | } 68 | } 69 | 70 | ?> -------------------------------------------------------------------------------- /SugarModules/service/callinize/registry.php: -------------------------------------------------------------------------------- 1 | serviceClass->registerFunction('find_beans_with_phone_number', array('session'=>'xsd:string', 'phone_number'=>'xsd:string', 'module_order'=>'xsd:string', 'stop_on_find'=>'xsd:bool'), array('return'=>'xsd:string')); 11 | $this->serviceClass->registerFunction('originate_call', array('session'=>'xsd:string', 'from_extension'=>'xsd:string', 'to_phone_number'=>'xsd:string')); 12 | } 13 | } 14 | 15 | ?> -------------------------------------------------------------------------------- /SugarModules/service/callinize/rest.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /UserManual.txt: -------------------------------------------------------------------------------- 1 | User Manual is maintained on: 2 | https://github.com/blak3r/yaai/wiki/User-Manual -------------------------------------------------------------------------------- /build_zip.bat: -------------------------------------------------------------------------------- 1 | :: Uses the same version of zip you get in cygwin. 2 | :: I didn't have cygwin on my sugarcrm dev box... but had a bunch of gnu utils thanks to installing git. 3 | :: I copied... zip.exe, cygbz2-1.dll and cygwin1.dll from another computers cygwin/bin folder and it works. 4 | :: 5 | :: Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. 6 | :: Zip 3.0 (July 5th 2008). Usage: 7 | :: zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] 8 | :: The default action is to add or replace zipfile entries from list, which 9 | :: can include the special name - to compress standard input. 10 | :: If zipfile and list are omitted, zip compresses stdin to stdout. 11 | :: -f freshen: only changed files -u update: only changed or new files 12 | :: -d delete entries in zipfile -m move into zipfile (delete OS files) 13 | :: ... 14 | :: -x exclude the following names 15 | :: (The rest is omitted) 16 | 17 | 18 | @SET /p VERSION=What is version number (ex 2.0.1.3): 19 | @echo TODO: update the manifest version / publish date. 20 | 21 | php manifest_updater.php $1 22 | zip -r * yaii-%VERSION%.zip -x .git* *.zip *.bak *.pnps *.pnproj *.eclipse *.svn copyTo*.sh copyFrom*.sh *.bat *.idea manifest_template.php 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /build_zip.sh: -------------------------------------------------------------------------------- 1 | #@/bin/bash 2 | #@SET /p VERSION=What is version number (ex 2.0.1.3): 3 | 4 | if [ "$1" = "" ] 5 | then 6 | echo USAGE: ./build_zip.sh [Version] 7 | echo Example: ./build_zip 2.0.0.1 8 | exit 1 9 | else 10 | VERSION=$1 11 | fi 12 | 13 | php manifest_updater.php $1 14 | zip -r yaai-$VERSION.zip * -x .git* *.zip *.bak *.pnps *.pnproj *.eclipse *.svn copyTo*.sh update_*.sh run_*.sh copyFrom*.sh compile*.sh *.bat *.idea manifest_template.php nbproject/* 15 | 16 | echo "" 17 | echo "" 18 | 19 | 20 | -------------------------------------------------------------------------------- /compileHtmlTemplate.sh: -------------------------------------------------------------------------------- 1 | /usr/local/share/npm/lib/node_modules/handlebars/bin/handlebars SugarModules/modules/Asterisk/include/template/call-template.html -f SugarModules/modules/Asterisk/include/template/call-template.tmpl -------------------------------------------------------------------------------- /copyToDir.sh: -------------------------------------------------------------------------------- 1 | # This is a dev script which copies from git repo to your sugar instance 2 | # ARG 1 == path to your sugarcrm root 3 | # ARG 2 == update (pass this if your cp command supports -u) 4 | #@/bin/bash 5 | 6 | if [ "$1" = "" ] 7 | then 8 | echo USAGE: ./copyToDir.sh [SugarRoot] 9 | echo Example: ./build_zip /var/www/sugarcrm 10 | exit 1 11 | else 12 | echo Copying to: $1 13 | # TODO check if folder exists... 14 | fi 15 | 16 | if [ "%2" == "update" ] 17 | then 18 | cp -ruv ./SugarModules/modules/Configurator $1/custom/modules/ 19 | cp -ruv ./SugarModules/modules/Asterisk $1/custom/modules/ 20 | cp -ruv ./SugarModules/modules/Administration $1/custom/modules/ 21 | cp -ruv ./SugarModules/service/callinize $1/custom/service/ 22 | else 23 | #cp on mac doesn't have the u option (update only if newer) 24 | cp -rv ./SugarModules/modules/Configurator $1/custom/modules/ 25 | cp -rv ./SugarModules/modules/Asterisk $1/custom/modules/ 26 | cp -rv ./SugarModules/modules/Administration $1/custom/modules/ 27 | cp -rv ./SugarModules/service/callinize $1/custom/service/ 28 | fi -------------------------------------------------------------------------------- /copyToPro.bat: -------------------------------------------------------------------------------- 1 | xcopy "C:\sugarcrm\htdocs\sugarcrm\custom\modules\Asterisk\*" "C:\yaii\SugarModules\modules\Asterisk\" /Y /E 2 | rem xcopy "C:\Program Files\sugarcrm-6.0.0\htdocs\sugarcrmce\custom\include\MVC\Controller\entry_point_registry.php" "C:\Program Files\sugarcrm-6.0.0\htdocs\sugarcrm\custom\include\MVC\Controller\entry_point_registry.php" /Y 3 | pause -------------------------------------------------------------------------------- /manifest_updater.php: -------------------------------------------------------------------------------- 1 | 2 | 1 ) { 30 | 31 | $manifestOutput = str_replace( array("@@VERSION@@", "@@PUBLISH_DATE@@","@@WARNING@@"), 32 | array($argv[1], date("Y-M-d H:m"), $warning), 33 | $manifest 34 | ); 35 | 36 | } 37 | else { 38 | print "ERROR: no version argument provided."; 39 | 40 | } 41 | 42 | print $manifestOutput; 43 | 44 | 45 | file_put_contents( $OUTPUT_FILE, $manifestOutput); 46 | -------------------------------------------------------------------------------- /misc/README: -------------------------------------------------------------------------------- 1 | asterisk_logger is a *nix daemon startup script. See the User Manual for how to use / install. 2 | 3 | asteriskLogger_* are old versions of asteriskLogger. They are included for reference: 4 | - v5.2 supported AMI v1.0 5 | - v6.1 the author changed the script to only work with v1.1 6 | 7 | As a result, yaai still only works with AMI v1.1 doing a diff between the two should provide insight into the changes 8 | that were made. 9 | 10 | en_us.lang.php is a file if you want to update the dropdown for Calls so users can select minute increments. -------------------------------------------------------------------------------- /misc/asterisk_logger: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | ### BEGIN INIT INFO 4 | # chkconfig: 2345 80 30 5 | # Provides: asterisk_logger 6 | # Required-Start: $local_fs $network 7 | # Required-Stop: $local_fs $network 8 | # Should-Start: apache2 asterisk mysql 9 | # Default-Start: 2 3 4 5 10 | # Default-Stop: 0 1 6 11 | # Short-Description: starts asterisk logger daemon 12 | # Description: starts asterisk logger using 13 | ### END INIT INFO 14 | 15 | # EDIT the USER and SUGAR_ROOT Variables below and read note in start_logger() below 16 | # USER isn't used unless you use the more secure version in start_logger 17 | # PHP_BIN - set this to the result of 'which php'. (ex. /usr/bin/php) 18 | # This will avoid any issues where path isn't set yet before init script runs. 19 | USER=apache 20 | SUGAR_ROOT=/var/www/html/sugarcrm 21 | PHP_BIN=php 22 | 23 | 24 | # Shouldn't need to edit any of these... 25 | PROC="asteriskLogger" 26 | DAEMON="$PHP_BIN $SUGAR_ROOT/custom/modules/Asterisk/$PROC.php" 27 | LOGFILE="/tmp/$PROC.log" 28 | NAME=asterisk_logger 29 | DESC=asterisk_logger 30 | 31 | 32 | set -e 33 | 34 | . /lib/lsb/init-functions 35 | 36 | start_logger() { 37 | # Note: the lines that are commented out below (starting with "sudo") is the more secure approach as it lets 38 | # you specify the user to start the daemon as but I've encountered 39 | # errors such as "sorry, you must have a tty to run sudo" on certain boxes. So, the default method below 40 | # will work more universally. You can try commenting the first line and uncommenting the second line 41 | # and hope it works. Suggestions are welcomed on ways to improve this script. 42 | $DAEMON > $LOGFILE < /dev/null & 43 | #sudo -u $USER $DAEMON > $LOGFILE < /dev/null & 44 | } 45 | 46 | stop_logger() { 47 | for i in `ps ax | grep -v grep | grep $PROC | cut -d ' ' -f 1` 48 | do 49 | kill -9 $i 50 | done 51 | for i in `ps ax | grep -v grep | grep $PROC | cut -d ' ' -f 2` 52 | do 53 | kill -9 $i 54 | done 55 | } 56 | 57 | case "$1" in 58 | start) 59 | echo -n "Starting $DESC: " 60 | start_logger 61 | echo "$NAME." 62 | ;; 63 | stop) 64 | echo -n "Stopping $DESC: " 65 | stop_logger 66 | echo "$NAME." 67 | ;; 68 | restart) 69 | echo -n "Restarting $DESC: " 70 | stop_logger 71 | start_logger 72 | echo "$NAME." 73 | ;; 74 | *) 75 | echo "Usage: $NAME {start|stop|restart}" >&2 76 | exit 1 77 | ;; 78 | esac 79 | 80 | exit 0 81 | -------------------------------------------------------------------------------- /misc/create_win_service.php: -------------------------------------------------------------------------------- 1 | \n"; 21 | print " is generally /custom/modules/Asterisk/asteriskLogger.php\n"; 22 | exit; 23 | } 24 | 25 | if( !file_exists($argv[1]) ) { 26 | print "ERROR: asteriskLogger.php not found at: $argv[1] set the path properly.\n"; 27 | } 28 | else { 29 | $x = win32_create_service(array( 30 | 'service' => 'asteriskLogger.php', # the name of your service 31 | 'display' => 'Asterisk Integration for SugarCRM', # short description 32 | 'description' => 'Maintains an AMI connection with your pbx and posts events to your sugarcrm server', # long description 33 | 'params' => '"' . $argv[1] . '"', # path to the script and parameters 34 | )); 35 | debug_zval_dump($x); 36 | } 37 | ?> -------------------------------------------------------------------------------- /misc/en_us.lang.php: -------------------------------------------------------------------------------- 1 | '', 4 | 0 => '00', 5 | 1 => '01', 6 | 2 => '02', 7 | 3 => '03', 8 | 4 => '04', 9 | 5 => '05', 10 | 6 => '06', 11 | 7 => '07', 12 | 8 => '08', 13 | 9 => '09', 14 | 10 => '10', 15 | 11 => '11', 16 | 12 => '12', 17 | 13 => '13', 18 | 14 => '14', 19 | 15 => '15', 20 | 16 => '16', 21 | 17 => '17', 22 | 18 => '18', 23 | 19 => '19', 24 | 20 => '20', 25 | 21 => '21', 26 | 22 => '22', 27 | 23 => '23', 28 | 24 => '24', 29 | 25 => '25', 30 | 26 => '26', 31 | 27 => '27', 32 | 28 => '28', 33 | 29 => '29', 34 | 30 => '30', 35 | 31 => '31', 36 | 32 => '32', 37 | 33 => '33', 38 | 34 => '34', 39 | 35 => '35', 40 | 36 => '36', 41 | 37 => '37', 42 | 38 => '38', 43 | 39 => '39', 44 | 40 => '40', 45 | 41 => '41', 46 | 42 => '42', 47 | 43 => '43', 48 | 44 => '44', 49 | 45 => '45', 50 | 46 => '46', 51 | 47 => '47', 52 | 48 => '48', 53 | 49 => '49', 54 | 50 => '50', 55 | 51 => '51', 56 | 52 => '52', 57 | 53 => '53', 58 | 54 => '54', 59 | 55 => '55', 60 | 56 => '56', 61 | 57 => '57', 62 | 58 => '58', 63 | 59 => '59', 64 | ); -------------------------------------------------------------------------------- /misc/php_win32service.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blak3r/yaai/ae1d86259470f2910136cf68dae338a1cfae3c26/misc/php_win32service.dll -------------------------------------------------------------------------------- /nbproject/project.properties: -------------------------------------------------------------------------------- 1 | include.path=${php.global.include.path} 2 | php.version=PHP_5 3 | source.encoding=UTF-8 4 | src.dir=. 5 | tags.asp=false 6 | tags.short=true 7 | web.root=. 8 | -------------------------------------------------------------------------------- /nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.php.project 4 | 5 | 6 | yaai-prod 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /scripts/pre_install.php: -------------------------------------------------------------------------------- 1 | '', 48 | //'hook' => 'after_ui_frame', 49 | //'order' => 67, 50 | //'description' => 'Add Tab to User Editor', 51 | //'file' => 'custom/modules/Users/Users_Enhanced.php', 52 | //'class' => 'defaultHomepage', 53 | //'function' => 'addTab', 54 | //), 55 | // 56 | 57 | // check_logic_hook_file("", "after_ui_frame", 58 | // array(1, 'Asterisk', 'custom/modules/Asterisk/include/AsteriskJS.php','AsteriskJS', 'echoJavaScript')); 59 | 60 | // creates Asterisk logging table 61 | // TODO detect if it's MSSQL and raise error 62 | if (empty($db)) { 63 | if (!class_exists('DBManagerFactory')) { 64 | die("no db available"); 65 | } 66 | $db = & DBManagerFactory::getInstance(); 67 | } 68 | 69 | $query = "DROP TABLE IF EXISTS asterisk_log"; 70 | $db->query($query, false, "Error dropping asterisk_log table: " . $query); 71 | 72 | if( !$db->tableExists("asterisk_log") ) { 73 | 74 | $createTableQuery = <<query($createTableQuery, false, "Error creating call table: " . $query); 116 | } 117 | 118 | } 119 | 120 | // http://www.edmondscommerce.co.uk/mysql/mysql-add-column-if-not-exists-php-function/ 121 | function add_column_if_not_exist($db, $table, $column, $column_attr = "VARCHAR( 255 ) NULL" ){ 122 | $exists = false; 123 | $cols = $db->get_columns($table); 124 | if( !array_key_exists($column, $cols) ) { 125 | $db->query("ALTER TABLE `$table` ADD `$column` $column_attr"); 126 | } 127 | } 128 | 129 | function add_index_if_not_exist($db, $table, $index) { 130 | $res = $db->query("SHOW INDEX FROM `$table` WHERE Key_name = '$index'"); 131 | if (empty($res)) { 132 | $db->query("ALTER TABLE `$table` ADD INDEX `$index` (`$index`)"); // TODO fix this, not working on my BR's dev box 133 | } 134 | } 135 | 136 | function modify_column($db, $table, $column, $column_attr) { 137 | $db->query("ALTER TABLE `$table` MODIFY `$column` $column_attr"); 138 | } 139 | 140 | ?> --------------------------------------------------------------------------------