call: add dialpad access
This commit adds the ability to dial dtmf tones during a call.
It is necessary for interacting with automated services.
RTP dtmf are not working in the daemon, so during SIP account creation
we switch to SIP dtmf.
Tuleap: #154
Change-Id: I9d6758af4bc0b44605dc4b17c08b9b4ceaee84bd
diff --git a/ui/Base.lproj/CurrentCall.xib b/ui/Base.lproj/CurrentCall.xib
index 2115b61..bb9e659 100644
--- a/ui/Base.lproj/CurrentCall.xib
+++ b/ui/Base.lproj/CurrentCall.xib
@@ -8,9 +8,12 @@
<connections>
<outlet property="addContactButton" destination="Zss-6A-bSy" id="Px0-5v-NE7"/>
<outlet property="addParticipantButton" destination="kIZ-mf-moM" id="7jn-l5-umS"/>
+ <outlet property="advancedButton" destination="VVL-A4-r7n" id="wc7-cJ-Z4N"/>
+ <outlet property="advancedPanel" destination="90B-Yc-WvN" id="C9e-hp-kC4"/>
<outlet property="chatButton" destination="fmp-x4-Pef" id="ARt-dr-TRo"/>
<outlet property="chatVC" destination="LWe-df-dS6" id="SMR-T0-fYe"/>
<outlet property="controlsPanel" destination="Eoi-B8-iL6" id="4xn-3b-SNn"/>
+ <outlet property="dialpadButton" destination="G0w-c3-9pJ" id="RY9-Tc-2US"/>
<outlet property="hangUpButton" destination="Kjq-iM-NBL" id="Puz-4L-Okl"/>
<outlet property="headerContainer" destination="d0X-cW-Xgz" id="7RM-kh-vCm"/>
<outlet property="holdOnOffButton" destination="anb-Y8-JQi" id="HSl-pE-Kwg"/>
@@ -143,10 +146,10 @@
</constraints>
</customView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="Eoi-B8-iL6" userLabel="Controls">
- <rect key="frame" x="20" y="20" width="452" height="67"/>
+ <rect key="frame" x="20" y="20" width="452" height="120"/>
<subviews>
<button toolTip="Mute Audio" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tQl-cT-0Lb" userLabel="Mute Audio" customClass="IconButton">
- <rect key="frame" x="120" y="13" width="40" height="40"/>
+ <rect key="frame" x="120" y="20" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="VhT-NE-Ler"/>
<constraint firstAttribute="height" constant="40" id="WFp-nl-egQ"/>
@@ -167,13 +170,13 @@
<action selector="muteAudio:" target="-2" id="DBk-mG-FLj"/>
</connections>
</button>
- <button toolTip="Record" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="oRa-pS-HN2" customClass="IconButton">
- <rect key="frame" x="220" y="13" width="40" height="40"/>
+ <button toolTip="Record" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="VVL-A4-r7n" customClass="IconButton">
+ <rect key="frame" x="270" y="20" width="40" height="40"/>
<constraints>
- <constraint firstAttribute="width" constant="40" id="5Yb-Ir-aNP"/>
- <constraint firstAttribute="height" constant="40" id="f6U-Sc-LhF"/>
+ <constraint firstAttribute="height" constant="40" id="WJY-rX-kLD"/>
+ <constraint firstAttribute="width" constant="40" id="jcJ-mm-2kQ"/>
</constraints>
- <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_action_record" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="rhz-4Z-avV">
+ <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_more" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="7gG-ds-iaA">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" size="10" name=".HelveticaNeueDeskInterface-Regular"/>
</buttonCell>
@@ -186,11 +189,11 @@
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
- <action selector="toggleRecording:" target="-2" id="gAc-ZJ-9PN"/>
+ <action selector="toggleAdvancedControls:" target="-2" id="eiq-fF-f7K"/>
</connections>
</button>
<button toolTip="Hold" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="anb-Y8-JQi" userLabel="Hold" customClass="IconButton">
- <rect key="frame" x="70" y="13" width="40" height="40"/>
+ <rect key="frame" x="70" y="20" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="QlH-xq-7uO"/>
<constraint firstAttribute="height" constant="40" id="Xzt-L0-evm"/>
@@ -211,30 +214,8 @@
<action selector="toggleHold:" target="-2" id="O18-nN-hHE"/>
</connections>
</button>
- <button toolTip="Transfer" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ChW-kg-Sja" customClass="IconButton">
- <rect key="frame" x="270" y="13" width="40" height="40"/>
- <constraints>
- <constraint firstAttribute="height" constant="40" id="9zo-pq-mgF"/>
- <constraint firstAttribute="width" constant="40" id="EVF-UM-brL"/>
- </constraints>
- <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_action_transfer" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="FOs-Wt-c2R">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" size="10" name=".HelveticaNeueDeskInterface-Regular"/>
- </buttonCell>
- <userDefinedRuntimeAttributes>
- <userDefinedRuntimeAttribute type="color" keyPath="highlightColor">
- <color key="value" red="0.16862745100000001" green="0.70588235290000001" blue="0.78823529410000004" alpha="1" colorSpace="calibratedRGB"/>
- </userDefinedRuntimeAttribute>
- <userDefinedRuntimeAttribute type="color" keyPath="bgColor">
- <color key="value" red="0.16078431369999999" green="0.16078431369999999" blue="0.16078431369999999" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
- </userDefinedRuntimeAttribute>
- </userDefinedRuntimeAttributes>
- <connections>
- <action selector="toggleTransferView:" target="-2" id="Gxt-lS-qZs"/>
- </connections>
- </button>
<button toolTip="Hang up" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Kjq-iM-NBL" userLabel="Hang Up" customClass="IconButton">
- <rect key="frame" x="20" y="13" width="40" height="40"/>
+ <rect key="frame" x="20" y="20" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="MYx-uE-Bej"/>
<constraint firstAttribute="height" constant="40" id="dmD-ga-Kwv"/>
@@ -252,52 +233,8 @@
<action selector="hangUp:" target="-2" id="1Fj-b8-nfh"/>
</connections>
</button>
- <button toolTip="Add participant" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kIZ-mf-moM" customClass="IconButton">
- <rect key="frame" x="320" y="13" width="40" height="40"/>
- <constraints>
- <constraint firstAttribute="height" constant="40" id="7qu-cd-B7J"/>
- <constraint firstAttribute="width" constant="40" id="U4p-eV-iCZ"/>
- </constraints>
- <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_action_add_participant" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="BOx-wf-CM5">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" size="10" name=".HelveticaNeueDeskInterface-Regular"/>
- </buttonCell>
- <userDefinedRuntimeAttributes>
- <userDefinedRuntimeAttribute type="color" keyPath="highlightColor">
- <color key="value" red="0.16862745100000001" green="0.70588235290000001" blue="0.78823529410000004" alpha="1" colorSpace="calibratedRGB"/>
- </userDefinedRuntimeAttribute>
- <userDefinedRuntimeAttribute type="color" keyPath="bgColor">
- <color key="value" red="0.16078431369999999" green="0.16078431369999999" blue="0.16078431369999999" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
- </userDefinedRuntimeAttribute>
- </userDefinedRuntimeAttributes>
- <connections>
- <action selector="toggleAddParticipantView:" target="-2" id="v6X-2r-6im"/>
- </connections>
- </button>
- <button toolTip="Mute Video" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="LVS-yZ-98V" userLabel="Mute Video" customClass="IconButton">
- <rect key="frame" x="170" y="13" width="40" height="40"/>
- <constraints>
- <constraint firstAttribute="height" constant="40" id="Qiq-Nb-gHN"/>
- <constraint firstAttribute="width" constant="40" id="k3u-dD-eLF"/>
- </constraints>
- <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_action_mute_video" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="sSe-V6-C7i">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <userDefinedRuntimeAttributes>
- <userDefinedRuntimeAttribute type="color" keyPath="highlightColor">
- <color key="value" red="0.16862745100000001" green="0.70588235290000001" blue="0.78823529410000004" alpha="1" colorSpace="calibratedRGB"/>
- </userDefinedRuntimeAttribute>
- <userDefinedRuntimeAttribute type="color" keyPath="bgColor">
- <color key="value" red="0.16078431369999999" green="0.16078431369999999" blue="0.16078431369999999" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
- </userDefinedRuntimeAttribute>
- </userDefinedRuntimeAttributes>
- <connections>
- <action selector="muteVideo:" target="-2" id="a6W-aB-zWX"/>
- </connections>
- </button>
<button toolTip="Toggle chat" wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="fmp-x4-Pef" userLabel="Chat" customClass="IconButton">
- <rect key="frame" x="370" y="13" width="40" height="40"/>
+ <rect key="frame" x="392" y="20" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="48U-1h-yAx"/>
<constraint firstAttribute="height" constant="40" id="EDO-9c-ndD"/>
@@ -327,26 +264,160 @@
<action selector="toggleChat:" target="-2" id="7HN-HS-oqT"/>
</connections>
</button>
+ <button toolTip="Mute Video" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="LVS-yZ-98V" userLabel="Mute Video" customClass="IconButton">
+ <rect key="frame" x="170" y="20" width="40" height="40"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="40" id="Qiq-Nb-gHN"/>
+ <constraint firstAttribute="width" constant="40" id="k3u-dD-eLF"/>
+ </constraints>
+ <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_action_mute_video" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="sSe-V6-C7i">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="color" keyPath="highlightColor">
+ <color key="value" red="0.16862745100000001" green="0.70588235290000001" blue="0.78823529410000004" alpha="1" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ <userDefinedRuntimeAttribute type="color" keyPath="bgColor">
+ <color key="value" red="0.16078431369999999" green="0.16078431369999999" blue="0.16078431369999999" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ </userDefinedRuntimeAttributes>
+ <connections>
+ <action selector="muteVideo:" target="-2" id="a6W-aB-zWX"/>
+ </connections>
+ </button>
+ <button toolTip="Add participant" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kIZ-mf-moM" customClass="IconButton">
+ <rect key="frame" x="220" y="20" width="40" height="40"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="40" id="7qu-cd-B7J"/>
+ <constraint firstAttribute="width" constant="40" id="U4p-eV-iCZ"/>
+ </constraints>
+ <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_action_add_participant" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="BOx-wf-CM5">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" size="10" name=".HelveticaNeueDeskInterface-Regular"/>
+ </buttonCell>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="color" keyPath="highlightColor">
+ <color key="value" red="0.16862745100000001" green="0.70588235290000001" blue="0.78823529410000004" alpha="1" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ <userDefinedRuntimeAttribute type="color" keyPath="bgColor">
+ <color key="value" red="0.16078431369999999" green="0.16078431369999999" blue="0.16078431369999999" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ </userDefinedRuntimeAttributes>
+ <connections>
+ <action selector="toggleAddParticipantView:" target="-2" id="v6X-2r-6im"/>
+ </connections>
+ </button>
+ <customView hidden="YES" translatesAutoresizingMaskIntoConstraints="NO" id="90B-Yc-WvN">
+ <rect key="frame" x="200" y="67" width="180" height="50"/>
+ <subviews>
+ <button toolTip="Record" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="G0w-c3-9pJ" customClass="IconButton">
+ <rect key="frame" x="70" y="5" width="40" height="40"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="40" id="XJ8-jj-wG5"/>
+ <constraint firstAttribute="height" constant="40" id="jvT-Ng-6gJ"/>
+ </constraints>
+ <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_dialpad" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="iED-Le-DAL">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" size="10" name=".HelveticaNeueDeskInterface-Regular"/>
+ </buttonCell>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="number" keyPath="imageInsets">
+ <integer key="value" value="8"/>
+ </userDefinedRuntimeAttribute>
+ <userDefinedRuntimeAttribute type="color" keyPath="highlightColor">
+ <color key="value" red="0.16862745100000001" green="0.70588235290000001" blue="0.78823529410000004" alpha="1" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ <userDefinedRuntimeAttribute type="color" keyPath="bgColor">
+ <color key="value" red="0.16078431369999999" green="0.16078431369999999" blue="0.16078431369999999" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ </userDefinedRuntimeAttributes>
+ <connections>
+ <action selector="showDialpad:" target="-2" id="30d-hA-dri"/>
+ </connections>
+ </button>
+ <button toolTip="Transfer" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ChW-kg-Sja" customClass="IconButton">
+ <rect key="frame" x="120" y="5" width="40" height="40"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="40" id="9zo-pq-mgF"/>
+ <constraint firstAttribute="width" constant="40" id="EVF-UM-brL"/>
+ </constraints>
+ <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_action_transfer" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="FOs-Wt-c2R">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" size="10" name=".HelveticaNeueDeskInterface-Regular"/>
+ </buttonCell>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="number" keyPath="imageInsets">
+ <integer key="value" value="8"/>
+ </userDefinedRuntimeAttribute>
+ <userDefinedRuntimeAttribute type="color" keyPath="highlightColor">
+ <color key="value" red="0.16862745100000001" green="0.70588235290000001" blue="0.78823529410000004" alpha="1" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ <userDefinedRuntimeAttribute type="color" keyPath="bgColor">
+ <color key="value" red="0.16078431369999999" green="0.16078431369999999" blue="0.16078431369999999" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ </userDefinedRuntimeAttributes>
+ <connections>
+ <action selector="toggleTransferView:" target="-2" id="Gxt-lS-qZs"/>
+ </connections>
+ </button>
+ <button toolTip="Record" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="oRa-pS-HN2" customClass="IconButton">
+ <rect key="frame" x="20" y="5" width="40" height="40"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="40" id="5Yb-Ir-aNP"/>
+ <constraint firstAttribute="height" constant="40" id="f6U-Sc-LhF"/>
+ </constraints>
+ <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="ic_action_record" imagePosition="overlaps" alignment="center" transparent="YES" imageScaling="proportionallyDown" id="rhz-4Z-avV">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" size="10" name=".HelveticaNeueDeskInterface-Regular"/>
+ </buttonCell>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="number" keyPath="imageInsets">
+ <integer key="value" value="8"/>
+ </userDefinedRuntimeAttribute>
+ <userDefinedRuntimeAttribute type="color" keyPath="highlightColor">
+ <color key="value" red="0.16862745100000001" green="0.70588235290000001" blue="0.78823529410000004" alpha="1" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ <userDefinedRuntimeAttribute type="color" keyPath="bgColor">
+ <color key="value" red="0.16078431369999999" green="0.16078431369999999" blue="0.16078431369999999" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ </userDefinedRuntimeAttributes>
+ <connections>
+ <action selector="toggleRecording:" target="-2" id="gAc-ZJ-9PN"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="width" constant="180" id="Ayt-Of-VvM"/>
+ <constraint firstItem="G0w-c3-9pJ" firstAttribute="centerY" secondItem="90B-Yc-WvN" secondAttribute="centerY" id="HON-Cf-ocr"/>
+ <constraint firstItem="G0w-c3-9pJ" firstAttribute="centerX" secondItem="90B-Yc-WvN" secondAttribute="centerX" id="Pm2-Oe-NXk"/>
+ <constraint firstItem="ChW-kg-Sja" firstAttribute="centerY" secondItem="90B-Yc-WvN" secondAttribute="centerY" id="RvO-GS-F2C"/>
+ <constraint firstItem="oRa-pS-HN2" firstAttribute="leading" secondItem="90B-Yc-WvN" secondAttribute="leading" constant="20" id="eLs-tp-tUO"/>
+ <constraint firstItem="oRa-pS-HN2" firstAttribute="centerY" secondItem="90B-Yc-WvN" secondAttribute="centerY" id="gJE-Rv-ZAh"/>
+ <constraint firstAttribute="trailing" secondItem="ChW-kg-Sja" secondAttribute="trailing" constant="20" id="qrc-nL-ORI"/>
+ <constraint firstAttribute="height" constant="50" id="vLy-fg-Ts0"/>
+ </constraints>
+ </customView>
</subviews>
<constraints>
- <constraint firstItem="ChW-kg-Sja" firstAttribute="centerY" secondItem="Eoi-B8-iL6" secondAttribute="centerY" id="006-Cv-8BS"/>
- <constraint firstItem="LVS-yZ-98V" firstAttribute="centerY" secondItem="Eoi-B8-iL6" secondAttribute="centerY" id="6vE-ZU-Hu1"/>
<constraint firstItem="tQl-cT-0Lb" firstAttribute="leading" secondItem="anb-Y8-JQi" secondAttribute="trailing" constant="10" id="7MF-DQ-Nb8"/>
- <constraint firstItem="anb-Y8-JQi" firstAttribute="centerY" secondItem="Eoi-B8-iL6" secondAttribute="centerY" id="H6t-wo-Nap"/>
- <constraint firstItem="Kjq-iM-NBL" firstAttribute="centerY" secondItem="Eoi-B8-iL6" secondAttribute="centerY" id="Qt4-Bh-Qef"/>
+ <constraint firstItem="VVL-A4-r7n" firstAttribute="centerY" secondItem="kIZ-mf-moM" secondAttribute="centerY" id="87p-Bt-9uI"/>
+ <constraint firstItem="LVS-yZ-98V" firstAttribute="centerY" secondItem="tQl-cT-0Lb" secondAttribute="centerY" id="AYj-Vt-7NL"/>
+ <constraint firstItem="VVL-A4-r7n" firstAttribute="leading" secondItem="kIZ-mf-moM" secondAttribute="trailing" constant="10" id="BKx-sU-jgs"/>
+ <constraint firstItem="VVL-A4-r7n" firstAttribute="centerX" secondItem="90B-Yc-WvN" secondAttribute="centerX" id="FRl-cK-7on"/>
+ <constraint firstAttribute="trailing" secondItem="fmp-x4-Pef" secondAttribute="trailing" constant="20" id="Mih-z5-5DI"/>
+ <constraint firstAttribute="bottom" secondItem="Kjq-iM-NBL" secondAttribute="bottom" constant="20" id="OcY-fg-QB8"/>
<constraint firstItem="Kjq-iM-NBL" firstAttribute="leading" secondItem="Eoi-B8-iL6" secondAttribute="leading" constant="20" id="Rwo-8h-nvA"/>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="385" id="TSJ-9A-brf"/>
- <constraint firstItem="ChW-kg-Sja" firstAttribute="leading" secondItem="oRa-pS-HN2" secondAttribute="trailing" constant="10" id="edH-aj-21j"/>
- <constraint firstItem="tQl-cT-0Lb" firstAttribute="centerY" secondItem="Eoi-B8-iL6" secondAttribute="centerY" id="hgC-Ud-ytJ"/>
- <constraint firstItem="fmp-x4-Pef" firstAttribute="leading" secondItem="kIZ-mf-moM" secondAttribute="trailing" constant="10" id="jy9-gW-YmT"/>
- <constraint firstItem="oRa-pS-HN2" firstAttribute="leading" secondItem="LVS-yZ-98V" secondAttribute="trailing" constant="10" id="k0b-zB-kn7"/>
- <constraint firstItem="oRa-pS-HN2" firstAttribute="centerY" secondItem="Eoi-B8-iL6" secondAttribute="centerY" id="oGK-mj-vWq"/>
- <constraint firstItem="kIZ-mf-moM" firstAttribute="centerY" secondItem="Eoi-B8-iL6" secondAttribute="centerY" id="rne-sf-Ccc"/>
- <constraint firstItem="fmp-x4-Pef" firstAttribute="centerY" secondItem="Eoi-B8-iL6" secondAttribute="centerY" id="s1T-el-Q6J"/>
+ <constraint firstItem="90B-Yc-WvN" firstAttribute="top" secondItem="Eoi-B8-iL6" secondAttribute="top" constant="3" id="UeR-c9-imd"/>
+ <constraint firstItem="kIZ-mf-moM" firstAttribute="centerY" secondItem="LVS-yZ-98V" secondAttribute="centerY" id="cdg-7O-ise"/>
+ <constraint firstItem="kIZ-mf-moM" firstAttribute="leading" secondItem="LVS-yZ-98V" secondAttribute="trailing" constant="10" id="fcF-jl-uYt"/>
+ <constraint firstAttribute="bottom" secondItem="fmp-x4-Pef" secondAttribute="bottom" constant="20" id="pKU-g7-5wu"/>
+ <constraint firstItem="tQl-cT-0Lb" firstAttribute="centerY" secondItem="anb-Y8-JQi" secondAttribute="centerY" id="rZo-XU-yeF"/>
<constraint firstItem="anb-Y8-JQi" firstAttribute="leading" secondItem="Kjq-iM-NBL" secondAttribute="trailing" constant="10" id="t5V-qu-Ssk"/>
<constraint firstItem="LVS-yZ-98V" firstAttribute="leading" secondItem="tQl-cT-0Lb" secondAttribute="trailing" constant="10" id="v4N-af-SoV"/>
- <constraint firstAttribute="height" constant="67" id="ynu-O5-MN8"/>
- <constraint firstItem="kIZ-mf-moM" firstAttribute="leading" secondItem="ChW-kg-Sja" secondAttribute="trailing" constant="10" id="zP9-uu-hCy"/>
+ <constraint firstAttribute="height" constant="120" id="ynu-O5-MN8"/>
+ <constraint firstItem="anb-Y8-JQi" firstAttribute="centerY" secondItem="Kjq-iM-NBL" secondAttribute="centerY" id="zA4-c4-mEX"/>
</constraints>
</customView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="JwW-2h-DyZ" customClass="ITProgressIndicator">
@@ -460,8 +531,8 @@
<constraint firstAttribute="height" constant="112" id="k2h-Lt-lIw"/>
</constraints>
</customView>
- <customView translatesAutoresizingMaskIntoConstraints="NO" id="W4l-Be-bhM">
- <rect key="frame" x="135" y="109" width="404" height="291"/>
+ <customView misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="W4l-Be-bhM">
+ <rect key="frame" x="135" y="148" width="404" height="291"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9Cd-Vs-wtu">
<rect key="frame" x="234" y="18" width="43" height="17"/>
@@ -758,6 +829,8 @@
<image name="ic_action_mute_video" width="72" height="72"/>
<image name="ic_action_record" width="54" height="54"/>
<image name="ic_action_transfer" width="57.599998474121094" height="57.599998474121094"/>
+ <image name="ic_dialpad" width="72" height="72"/>
+ <image name="ic_more" width="72" height="72"/>
<image name="ic_person_add" width="48" height="48"/>
</resources>
</document>
diff --git a/ui/Base.lproj/Dialpad.xib b/ui/Base.lproj/Dialpad.xib
new file mode 100644
index 0000000..b7b7448
--- /dev/null
+++ b/ui/Base.lproj/Dialpad.xib
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11201" systemVersion="16B2553a" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+ <dependencies>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11201"/>
+ <capability name="Alignment constraints to the first baseline" minToolsVersion="6.0"/>
+ <capability name="Alignment constraints with different attributes" minToolsVersion="5.1"/>
+ </dependencies>
+ <objects>
+ <customObject id="-2" userLabel="File's Owner" customClass="DialpadWC">
+ <connections>
+ <outlet property="composerField" destination="emT-N5-1YW" id="U9O-0X-Hok"/>
+ <outlet property="window" destination="vrA-VP-2Md" id="ufg-AW-usf"/>
+ </connections>
+ </customObject>
+ <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+ <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+ <window title="Dial Pad" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" oneShot="NO" showsToolbarButton="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="vrA-VP-2Md" customClass="NSPanel">
+ <windowStyleMask key="styleMask" titled="YES" closable="YES" utility="YES" HUD="YES"/>
+ <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+ <rect key="contentRect" x="618" y="354" width="202" height="224"/>
+ <rect key="screenRect" x="0.0" y="0.0" width="1440" height="900"/>
+ <view key="contentView" id="hfL-1D-aTf">
+ <rect key="frame" x="0.0" y="0.0" width="202" height="224"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <subviews>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dXV-3z-hW7">
+ <rect key="frame" x="15" y="94" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="4" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="GvJ-yA-EDa">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="Pe0-Ke-PPi"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zSt-EX-wEV">
+ <rect key="frame" x="138" y="127" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="3" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Hd9-Py-oob">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="WGx-BS-s0r"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uyy-Md-cVr">
+ <rect key="frame" x="75" y="127" width="50" height="32"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="38" id="xaH-ec-YnR"/>
+ </constraints>
+ <buttonCell key="cell" type="push" title="2" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="anB-0b-8qb">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="QJf-mL-jcD"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="IRc-3g-5NF">
+ <rect key="frame" x="14" y="127" width="50" height="32"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="38" id="s3i-MG-TMl"/>
+ </constraints>
+ <buttonCell key="cell" type="push" title="1" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Mda-73-3kM">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="fa3-3t-QMw"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2WF-eN-2MS">
+ <rect key="frame" x="75" y="94" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="5" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="cXL-QF-edl">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="Ffb-QN-x4T"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="3nO-ic-N80">
+ <rect key="frame" x="138" y="94" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="6" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ENK-x9-8ps">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="Yvp-hz-fiH"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Sxp-qZ-AE8">
+ <rect key="frame" x="14" y="61" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="7" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="4Dd-Ba-oRg">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="q1x-yK-Um0"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="FPI-UI-0xU">
+ <rect key="frame" x="75" y="61" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="8" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="CTZ-Rn-5oT">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="2NF-85-UB0"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2eC-wY-XJA">
+ <rect key="frame" x="138" y="61" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="9" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="TYj-va-kS8">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="A1H-or-Iw8"/>
+ </connections>
+ </button>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="emT-N5-1YW">
+ <rect key="frame" x="19" y="182" width="165" height="22"/>
+ <textFieldCell key="cell" lineBreakMode="truncatingHead" sendsActionOnEndEditing="YES" state="on" alignment="right" id="xjf-UT-Ycf">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tUf-Uh-y46">
+ <rect key="frame" x="138" y="28" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="#" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="H5T-k1-cjZ">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="rbL-gv-gVd"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="G5n-iK-rHb">
+ <rect key="frame" x="15" y="28" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="*" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="6ZB-c1-gR6">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="Mqz-tu-Y9S"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="b4a-jZ-6Vh">
+ <rect key="frame" x="75" y="28" width="50" height="32"/>
+ <buttonCell key="cell" type="push" title="0" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="u3Z-SY-MgY">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="dtmfPressed:" target="-2" id="8EU-G8-f0Q"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstItem="FPI-UI-0xU" firstAttribute="leading" secondItem="b4a-jZ-6Vh" secondAttribute="leading" id="1ag-9g-TAe"/>
+ <constraint firstItem="IRc-3g-5NF" firstAttribute="baseline" secondItem="uyy-Md-cVr" secondAttribute="baseline" id="508-JY-NEq"/>
+ <constraint firstItem="2WF-eN-2MS" firstAttribute="trailing" secondItem="FPI-UI-0xU" secondAttribute="trailing" id="5So-JG-Qez"/>
+ <constraint firstItem="zSt-EX-wEV" firstAttribute="leading" secondItem="uyy-Md-cVr" secondAttribute="trailing" constant="25" id="ATL-zS-eci"/>
+ <constraint firstItem="emT-N5-1YW" firstAttribute="centerX" secondItem="hfL-1D-aTf" secondAttribute="centerX" id="AbX-fM-F10"/>
+ <constraint firstItem="dXV-3z-hW7" firstAttribute="trailing" secondItem="G5n-iK-rHb" secondAttribute="trailing" id="AmD-P6-Bex"/>
+ <constraint firstItem="2WF-eN-2MS" firstAttribute="baseline" secondItem="3nO-ic-N80" secondAttribute="baseline" id="Bhi-PB-sI3"/>
+ <constraint firstItem="dXV-3z-hW7" firstAttribute="top" secondItem="IRc-3g-5NF" secondAttribute="bottom" constant="12" symbolic="YES" id="Bq7-oq-8Up"/>
+ <constraint firstItem="emT-N5-1YW" firstAttribute="leading" secondItem="dXV-3z-hW7" secondAttribute="leading" id="BqE-N2-9Xw"/>
+ <constraint firstItem="dXV-3z-hW7" firstAttribute="centerY" secondItem="hfL-1D-aTf" secondAttribute="centerY" id="CdY-Ev-4J9"/>
+ <constraint firstItem="zSt-EX-wEV" firstAttribute="leading" secondItem="3nO-ic-N80" secondAttribute="leading" id="F9T-fH-dID"/>
+ <constraint firstItem="3nO-ic-N80" firstAttribute="leading" secondItem="2eC-wY-XJA" secondAttribute="leading" id="GaU-Ts-Qhn"/>
+ <constraint firstItem="emT-N5-1YW" firstAttribute="trailing" secondItem="zSt-EX-wEV" secondAttribute="trailing" id="J8g-kT-3M0"/>
+ <constraint firstItem="b4a-jZ-6Vh" firstAttribute="baseline" secondItem="tUf-Uh-y46" secondAttribute="baseline" id="Kg0-bZ-cGm"/>
+ <constraint firstItem="IRc-3g-5NF" firstAttribute="leading" secondItem="Sxp-qZ-AE8" secondAttribute="leading" id="Kvm-fk-MFe"/>
+ <constraint firstItem="IRc-3g-5NF" firstAttribute="top" secondItem="emT-N5-1YW" secondAttribute="bottom" constant="27" id="MXt-1H-2j6"/>
+ <constraint firstItem="IRc-3g-5NF" firstAttribute="leading" secondItem="hfL-1D-aTf" secondAttribute="leading" constant="20" symbolic="YES" id="NTu-5k-cTf"/>
+ <constraint firstItem="uyy-Md-cVr" firstAttribute="trailing" secondItem="2WF-eN-2MS" secondAttribute="trailing" id="PLK-9K-j7s"/>
+ <constraint firstItem="uyy-Md-cVr" firstAttribute="leading" secondItem="2WF-eN-2MS" secondAttribute="leading" id="Q0d-rb-xFZ"/>
+ <constraint firstItem="FPI-UI-0xU" firstAttribute="baseline" secondItem="2eC-wY-XJA" secondAttribute="baseline" id="Qk4-3p-2cf"/>
+ <constraint firstAttribute="bottom" secondItem="G5n-iK-rHb" secondAttribute="bottom" constant="35" id="Vgw-Ns-3CQ"/>
+ <constraint firstItem="uyy-Md-cVr" firstAttribute="leading" secondItem="IRc-3g-5NF" secondAttribute="trailing" constant="23" id="WaY-R8-AOD"/>
+ <constraint firstItem="IRc-3g-5NF" firstAttribute="trailing" secondItem="Sxp-qZ-AE8" secondAttribute="trailing" id="X30-9U-wxP"/>
+ <constraint firstItem="2WF-eN-2MS" firstAttribute="leading" secondItem="dXV-3z-hW7" secondAttribute="trailing" constant="22" id="XCz-p2-mpX"/>
+ <constraint firstItem="zSt-EX-wEV" firstAttribute="trailing" secondItem="3nO-ic-N80" secondAttribute="trailing" id="aIg-QS-eG4"/>
+ <constraint firstItem="uyy-Md-cVr" firstAttribute="baseline" secondItem="IRc-3g-5NF" secondAttribute="firstBaseline" id="b2f-BO-xex"/>
+ <constraint firstItem="G5n-iK-rHb" firstAttribute="baseline" secondItem="b4a-jZ-6Vh" secondAttribute="baseline" id="fwH-d8-Opi"/>
+ <constraint firstItem="Sxp-qZ-AE8" firstAttribute="baseline" secondItem="FPI-UI-0xU" secondAttribute="baseline" id="gak-87-jom"/>
+ <constraint firstItem="FPI-UI-0xU" firstAttribute="trailing" secondItem="b4a-jZ-6Vh" secondAttribute="trailing" id="grA-W6-BIg"/>
+ <constraint firstItem="2eC-wY-XJA" firstAttribute="trailing" secondItem="tUf-Uh-y46" secondAttribute="trailing" id="jiP-TS-SMp"/>
+ <constraint firstItem="G5n-iK-rHb" firstAttribute="top" secondItem="Sxp-qZ-AE8" secondAttribute="bottom" constant="12" symbolic="YES" id="kN3-av-JuM"/>
+ <constraint firstItem="uyy-Md-cVr" firstAttribute="baseline" secondItem="zSt-EX-wEV" secondAttribute="baseline" id="kpO-Kz-Js8"/>
+ <constraint firstItem="dXV-3z-hW7" firstAttribute="baseline" secondItem="2WF-eN-2MS" secondAttribute="baseline" id="lSS-mi-Mau"/>
+ <constraint firstItem="2WF-eN-2MS" firstAttribute="leading" secondItem="FPI-UI-0xU" secondAttribute="leading" id="lvT-sj-4Ts"/>
+ <constraint firstAttribute="trailing" secondItem="emT-N5-1YW" secondAttribute="trailing" constant="20" symbolic="YES" id="nf1-dX-Pus"/>
+ <constraint firstItem="3nO-ic-N80" firstAttribute="trailing" secondItem="2eC-wY-XJA" secondAttribute="trailing" id="pqk-AX-ozV"/>
+ <constraint firstItem="2eC-wY-XJA" firstAttribute="leading" secondItem="tUf-Uh-y46" secondAttribute="leading" id="sSG-xY-tIm"/>
+ <constraint firstItem="dXV-3z-hW7" firstAttribute="leading" secondItem="G5n-iK-rHb" secondAttribute="leading" id="sbO-UA-nW9"/>
+ <constraint firstItem="emT-N5-1YW" firstAttribute="top" secondItem="hfL-1D-aTf" secondAttribute="top" constant="20" symbolic="YES" id="wnW-Ou-8bE"/>
+ <constraint firstItem="Sxp-qZ-AE8" firstAttribute="top" secondItem="dXV-3z-hW7" secondAttribute="bottom" constant="12" symbolic="YES" id="zjb-cS-6Pu"/>
+ </constraints>
+ </view>
+ <connections>
+ <outlet property="delegate" destination="-2" id="lSe-XL-EXz"/>
+ </connections>
+ <point key="canvasLocation" x="98" y="312"/>
+ </window>
+ </objects>
+</document>