Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Cisco unified communications manager (cucm)

    CISCO UNIFIED COMMUNICATIONS MANAGER (CUCM)


    CUCM là một thành phần xử lý cuộc gọi mạnh mẽ của giải pháp truyền thông hội tụ của Cisco. CUCM hỗ trợ các loại giao tiếp sau:
    • Các giao tiếp cho cài đặt.
    • Giám sát thiết bị và giao tiếp điều khiển cuộc gọi.
    • Các giao tiếp cho các dịch vụ
    • Các giao tiếp cho các qui luật định tuyến
    1. Administrative XML


    API quản trị XML cung cấp một cơ chế đề chèn, truy xuất, cập nhật và xóa dữ liệu ra khỏi cơ sở dữ liệu cấu hình của CUCM bằng cách dùng SOAP/XML. Giao tiếp này cho phép một người lập trình viên truy cập đến dịch vụ cài đặt của CUCM bằng cách dùng XML và trao đổi dữ liệu ở dạng XML. Các phương thức ACL, còn gọi là request, được thực hiện dùng một kết hợp của HTTP và SOAP. SOAP là một giao thức gọi thủ tục từ xa. Người dùng thực hiện các yêu cầu bằng cách gửi các dữ liệu XML đến các máy chủ CUCM, sau đó các máy chủ trả về AXL, cũng là một dạng thông điệp SOAP.

    Để biết thêm thông tin, hãy truy cập
    https://developer.cisco.com/docs/axl/#!axl-developerguide/overview.


    Các ví dụ mà CUCM có thể cài đặt bằng AXL bao gồm:
    • Unified CM groups,
    • Call park DNs
    • Call pickup groups
    • Calling search spaces
    • CTI route points
    • Device pools
    • Device profiles
    • Dial plan tags
    • Dial plans
    • Digit discard instructions
    • Directory numbers
    • Gateways (analog, T1, PRI)
    • Locations
    • MGCP devices
    • Phones
    • Process nodes
    • Process node services
    • Regions
    • Route filters
    • Route groups
    • Route lists
    • Route partitions
    • Service parameters
    • Translation patterns
    • Users
    • Voicemail ports
    2. Cisco AXL Toolkit


    Bạn có thể download các AXL Toolkit từ trang quản trị của CUCM (https://<CUCMAddress>/
    plugins/axlsqltoolkit.zip), như hiển thị trong hình vẽ

    Click image for larger version

Name:	dataurl520974.png
Views:	21
Size:	38.3 KB
ID:	438258
    Khi bạn download AXL Toolkit và giải nén file, thư mục chứa các AXL API file cho các phiên bản AXL:
    • AXLAPI.wsdl: WSDL file
    • AXLEnums.xsd: Enum type definitions
    • AXLSoap.xsd: Type definitions

    Các file XML này chứa đầy đủ các chi tiết về định dạng AXL API, bao gồm tên truy cập, các trường/ các thành phần, các kiểu dữ liệu được dùng và các luật kiểm tra các trường dữ liệu. Một điểm thuận lợi của các sơ đồ .xsd là nó có thể được dùng để kiểm tra một cách tự động các tài liệu XML để đảm bảo rằng nó được định dạng tốt và đúng theo các đặc tả của XML.

    Nhiều ứng dụng soạn thảo XML và các công cụ lập trình, các thành phần có thể dùng .xsd để kiểm tra các tài liệu XML. Các cách làm có thể khác nhau. Các chi tiết chính cần thiết, là định nghĩa xsi:schemaLocation với URI chỉ đến file axlsoap.xsd.

    3. Truy cập đến AXL SOAP API


    Bây giờ chúng ta hãy xem hai phương thức khác nhau để truy cập AXL SOAP API.

    3.1. Dùng thư viện Zeep Client Library

    Đoạn mã Python trong ví dụ bên dưới mô tả làm thế nào để thực hiện một cuộc gọi API để cập nhật một thiết bị phone và nhận thông tin đầy đủ về phone. Chương trình dùng AXLAPI.wsdl được tải về bằng AXL Tookkit.


    """ Update and Retrieve Client Details """
    from zeep import Client
    from zeep.cache import SqliteCache
    from zeep.transports import Transport
    from requests import Session
    from requests.auth import HTTPBasicAuth
    import urllib3
    from urllib3.exceptions import
    InsecureRequestWarning
    urllib3.disable_warnings(InsecureRequestWarning)
    USERNAME = 'administrator'
    PASSWORD = 'ciscopsdt'
    IP_ADDRESS = "10.10.20.1"
    WSDL = 'schema//12.0//AXLAPI.wsdl'
    BINDING_NAME = "
    {http://www.cisco.com/AXLAPIService/}AXLAPIBinding"
    ADDRESS =
    "https://{ip}:8443/axl/".format(ip=IP_ADDRESS)
    def update_phone_by_name(client, name,description):
    """ Update Phone by Name """
    return client.updatePhone(**{'name': name,'description': description})
    def get_phone_by_name(client, name):
    """ Get Phone by Name """
    return client.getPhone(name=name)
    def main():
    """ Main """
    session = Session()
    session.verify = False
    session.auth = HTTPBasicAuth(USERNAME,PASSWORD)
    transport = Transport(cache=SqliteCache(),
    session=session, timeout=60)
    client = Client(wsdl=WSDL,transport=transport)
    axl = client.create_service(BINDING_NAME,ADDRESS)
    update_phone_by_name(axl,
    "SEP001122334455", "DevAsc: adding new Desc")
    print(get_phone_by_name(axl,"SEP001122334455"))
    if __name__ == '__main__':
    main()


    3.2. Dùng Cisco AXL SDK

    Python SDK được gọi là Cisco ACL thì khá đơn giản để sử dụng. Cũng có những loại SDK khác sẵn có, nhưng chúng ta sẽ dùng CiscoAXL ở đây như một ví dụ. Để bắt đầu bằng SDK, bạn cần phải cài đặt nó bằng lệnh pip hay pip3.


    pip install ciscoaxl or pip3 install ciscoaxl


    Ví dụ bên dưới mô tả cách thức đơn giản để kích hoạt SDK và bắt đầu làm việc với công cụ này.


    """ Using CiscoAXL SDK to get phone info"""
    from ciscoaxl import axl
    CUCM = '10.10.20.1'
    CUCM_USER = "administrator"
    CUCM_PASSWORD = "ciscopsdt"
    CUCM_VERSION = '12.0'
    ucm =axl(username=CUCM_USER,password=CUCM_PASSWORD,c
    ucm=CUCM,cucm_version=CUCM_VERSION)
    print (ucm)
    for phone in ucm.get_phones():
    print(phone.name)
    for user in ucm.get_users():
    print(user.firstName)


    Để có thêm nhiều ví dụ, hãy xem phần DevNet’s Code Exchange ở địa chỉ
    https://developer.cisco.com/codeexchange/github/repo/levensailor/ciscoaxl/.

Working...
X